From 29de2880b9b3b136e1587443211738b2ec6c60f0 Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Mon, 30 Oct 2023 13:47:05 -0600 Subject: [PATCH] added some details for editing assignment --- Management.Web/Pages/AssignmentFormPage.razor | 9 +- .../AssignmentForm/AssignmentForm.razor | 25 +++- .../AssignmentForm/RubricMarkdownEditor.razor | 114 ++++++++++-------- .../Configuration/AssignmentEditorContext.cs | 58 ++++++++- .../AssignmentSyncronizationExtensions.cs | 3 +- .../Canvas/CanvasAssignmentService.cs | 9 +- 6 files changed, 153 insertions(+), 65 deletions(-) diff --git a/Management.Web/Pages/AssignmentFormPage.razor b/Management.Web/Pages/AssignmentFormPage.razor index 7020a6d..75b2ae2 100644 --- a/Management.Web/Pages/AssignmentFormPage.razor +++ b/Management.Web/Pages/AssignmentFormPage.razor @@ -41,14 +41,15 @@ if (assignmentContext.Assignment == null) { var assignment = planner - .LocalCourse? - .Modules - .SelectMany(m => m.Assignments) - .FirstOrDefault(a => a.Name == AssignmentName); + .LocalCourse? + .Modules + .SelectMany(m => m.Assignments) + .FirstOrDefault(a => a.Name == AssignmentName); assignmentContext.Assignment = assignment; logger.LogInformation($"set assignment to '{assignmentContext.Assignment?.Name}'"); } + await planner.LoadCanvasData(); base.OnInitialized(); StateHasChanged(); } diff --git a/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor b/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor index 9f29556..b2dfeb1 100644 --- a/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor +++ b/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor @@ -144,6 +144,16 @@ await planner.LoadCanvasData(); addingAssignmentToCanvas = false; } + private async Task updateInCanvas() + { + if(assignmentInCanvas != null) + { + addingAssignmentToCanvas = true; + await assignmentContext.UpdateInCanvas(assignmentInCanvas.Id); + await planner.LoadCanvasData(); + addingAssignmentToCanvas = false; + } + } private CanvasAssignment? assignmentInCanvas => planner.CanvasAssignments?.FirstOrDefault(a => a.Name == assignmentContext.Assignment?.Name); @@ -153,16 +163,20 @@ private async Task deleteFromCanvas() { - if (assignmentInCanvas == null || planner.LocalCourse.Settings.CanvasId == null || assignmentContext.Assignment == null) + if (assignmentInCanvas == null + || planner.LocalCourse.Settings.CanvasId == null + || assignmentContext.Assignment == null + ) return; + deletingAssignmentFromCanvas = true; await canvas.Assignments.Delete( (ulong)planner.LocalCourse.Settings.CanvasId, assignmentInCanvas.Id, assignmentContext.Assignment.Name); await planner.LoadCanvasData(); - StateHasChanged(); deletingAssignmentFromCanvas = false; + StateHasChanged(); } } @@ -224,6 +238,13 @@ > View in Canvas + rubric { get; set; } = Array.Empty(); - private string rubricText = ""; + private IEnumerable displayRubric { get; set; } = new RubricItem[] {}; + private string _rubricText = ""; + private string rubricText + { + get => _rubricText; + set + { + _rubricText = value; + + try + { + var parsedRubric = LocalAssignment.ParseRubricMarkdown(value); + displayRubric = parsedRubric; + error = null; + if (assignmentContext.Assignment != null) + { + var newAssignment = assignmentContext.Assignment with + { + Rubric = parsedRubric, + }; + assignmentContext.SaveAssignment(newAssignment); + } + } + catch (RubricMarkdownParseException parseError) + { + error = parseError.Message; + } + + StateHasChanged(); + } + } private int rubricReloadKey = 0; + private string? error { get; set; } = null; protected override void OnInitialized() { @@ -19,55 +49,28 @@ { if (assignmentContext.Assignment != null) { - rubric = assignmentContext.Assignment.Rubric; + if(rubricText == string.Empty) + { + rubricText = assignmentContext.Assignment.RubricToMarkdown(); + } } this.InvokeAsync(this.StateHasChanged); } + public void Dispose() { assignmentContext.StateHasChanged -= reload; } - private void save() - { - if (assignmentContext.Assignment != null) - { - var newAssignment = assignmentContext.Assignment with - { - Rubric = rubric, - }; - assignmentContext.SaveAssignment(newAssignment); - StateHasChanged(); - } - } - - private void handleNewRubricText() - { - - } - - private int requiredPoints => rubric.Where(r => !r.IsExtraCredit).Select(r => r.Points).Sum(); - private int extraCreditPoints => rubric.Where(r => r.IsExtraCredit).Select(r => r.Points).Sum(); + private int requiredPoints => displayRubric.Where(r => !r.IsExtraCredit).Select(r => r.Points).Sum(); + private int extraCreditPoints => displayRubric.Where(r => r.IsExtraCredit).Select(r => r.Points).Sum(); }
- -

Rubric

-
-
-
- -
-
- HTML Preview -
-