Files
canvasManagement/Management.Web/Pages/AssignmentFormPage.razor

67 lines
1.9 KiB
Plaintext

@page "/course/{CourseName}/assignment/{AssignmentId}"
@using CanvasModel.EnrollmentTerms
@using Management.Web.Shared.Components.AssignmentForm
@using Management.Web.Shared.Course
@using Management.Web.Shared.Module.Assignment.Templates
@using Management.Web.Shared.Semester
@using CanvasModel.Courses
@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage
@using LocalModels
@using Management.Web.Shared.Module.Assignment
@using Management.Web.Shared.Components
@inject YamlManager yamlManager
@inject CanvasService canvas
@inject CoursePlanner planner
@inject AssignmentEditorContext assignmentContext
@inject ILogger<AssignmentFormPage> logger
@code {
[Parameter]
public string? CourseName { get; set; } = default!;
[Parameter]
public string? AssignmentId { get; set; } = default!;
private bool loading { get; set; }= true;
protected override async Task OnInitializedAsync()
{
if(loading)
{
loading = false;
logger.LogInformation($"loading assignment {CourseName} {AssignmentId}");
if(planner.LocalCourse == null)
{
var courses = await yamlManager.LoadSavedCourses();
planner.LocalCourse = courses.First(c => c.Settings.Name == CourseName);
logger.LogInformation($"set course to '{planner.LocalCourse?.Settings.Name}'");
}
if(assignmentContext.Assignment == null)
{
var assignment = planner
.LocalCourse?
.Modules
.SelectMany(m => m.Assignments)
.FirstOrDefault(a => a.Id == AssignmentId);
assignmentContext.Assignment = assignment;
logger.LogInformation($"set assignment to '{assignmentContext.Assignment?.Name}'");
}
base.OnInitialized();
StateHasChanged();
}
}
}
@if(loading)
{
<Spinner />
}
@if(planner.LocalCourse != null && assignmentContext.Assignment != null)
{
<AssignmentForm />
}