@using Management.Web.Shared.Components @inject CoursePlanner planner @code { 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 bool useTemplate { get; set; } = false; private string? templateId { get; set; } public Dictionary templateVariables { get; set; } = new Dictionary(); private string description { get; set; } = String.Empty; private string name { get; set; } = String.Empty; private bool lockAtDueDate { get; set; } private IEnumerable rubric { get; set; } = Enumerable.Empty(); private IEnumerable submissionTypes { get; set; } = Enumerable.Empty(); protected override void OnParametersSet() { if(Show) { AssignmentModal.Show(); } name = Assignment.name; description = Assignment.description; lockAtDueDate = Assignment.lock_at_due_date; rubric = Assignment.rubric; submissionTypes = Assignment.submission_types; templateId = Assignment.template_id; useTemplate = Assignment.use_template; templateVariables = Assignment.template_variables; } private void submitHandler() { var totalRubricPoints = rubric .Where(r => !r.Label.Contains(RubricItem.extraCredit)) .Select(s => s.Points) .Sum(); var newAssignment = Assignment with { name=name, description=description, lock_at_due_date=lockAtDueDate, rubric=rubric, points_possible=totalRubricPoints, submission_types=submissionTypes, use_template=useTemplate, template_id=templateId, template_variables=templateVariables, }; 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(); } private void SetTypes(IEnumerable newTypes) { submissionTypes = newTypes; StateHasChanged(); } } @Assignment.name