@using Management.Web.Shared.Components @inject CoursePlanner planner @code { [Parameter] [EditorRequired] public LocalModule Module { get; set; } = default!; [Parameter] [EditorRequired] public LocalAssignment Assignment { get; set; } = default!; [Parameter] [EditorRequired] public bool Show { get; set; } [Parameter] public Action OnHide { get; set; } = () => { }; public Modal AssignmentModal { get; set; } = default!; private string description { get; set; } = String.Empty; private bool lockAtDueDate { get; set; } private IEnumerable rubric { get; set; } = Enumerable.Empty(); protected override void OnParametersSet() { if(Show) { AssignmentModal.Show(); } description = Assignment.description; lockAtDueDate = Assignment.lock_at_due_date; rubric = Assignment.rubric; } private void submitHandler() { var newAssignment = Assignment with { description=description, lock_at_due_date=lockAtDueDate, rubric=rubric, }; System.Console.WriteLine(JsonSerializer.Serialize(newAssignment)); if(planner.LocalCourse != null) { planner.LocalCourse = planner.LocalCourse with { Modules=planner.LocalCourse.Modules.Select(m => m.Name != Module.Name ? m : Module with { Assignments=Module.Assignments.Select(a => a.id == newAssignment.id ? newAssignment : a ) } ) }; } AssignmentModal.Hide(); } private void updateRubric(IEnumerable newRubric) { rubric = newRubric; StateHasChanged(); } } @Assignment.name