@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 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.Name == CourseName); logger.LogInformation($"set course to '{planner.LocalCourse?.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) { } @if(planner.LocalCourse != null && assignmentContext.Assignment != null) { }