From 014b4aeff86bc145985c293916e30364f27fb2b6 Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Fri, 19 Jan 2024 14:31:59 -0700 Subject: [PATCH] smarter assignment parsing --- .../Markdown/AssignmentMarkdownTests.cs | 22 +++++++++++++++- .../Configuration/QuizEditorContext.cs | 3 ++- .../LocalAssignmentMarkdownParser.cs | 2 +- README.md | 25 ------------------- 4 files changed, 24 insertions(+), 28 deletions(-) diff --git a/Management.Test/Markdown/AssignmentMarkdownTests.cs b/Management.Test/Markdown/AssignmentMarkdownTests.cs index 82791c8..db8c9d1 100644 --- a/Management.Test/Markdown/AssignmentMarkdownTests.cs +++ b/Management.Test/Markdown/AssignmentMarkdownTests.cs @@ -111,5 +111,25 @@ public class AssignmentMarkdownTests var parsedAssignment = LocalAssignment.ParseMarkdown(assignmentMarkdown); parsedAssignment.Should().BeEquivalentTo(assignment); } + [Test] + public void Assignments_CanHaveThreeDashes() + { + var assignment = new LocalAssignment() + { + Name="test assignment", + Description = "test assignment\n---\nsomestuff", + DueAt = new DateTime(), + LockAt = new DateTime(), + SubmissionTypes = [], + LocalAssignmentGroupName = "Final Project", + Rubric = new List() { + } + }; -} \ No newline at end of file + var assignmentMarkdown = assignment.ToMarkdown(); + + var parsedAssignment = LocalAssignment.ParseMarkdown(assignmentMarkdown); + parsedAssignment.Should().BeEquivalentTo(assignment); + } + +} diff --git a/Management/Features/Configuration/QuizEditorContext.cs b/Management/Features/Configuration/QuizEditorContext.cs index 7090676..832562b 100644 --- a/Management/Features/Configuration/QuizEditorContext.cs +++ b/Management/Features/Configuration/QuizEditorContext.cs @@ -120,7 +120,8 @@ public class QuizEditorContext( (ulong)canvasQuizId ); - await planner.LocalCourse.Modules.First().SortModuleItems( + var module = getCurrentLocalModule(Quiz, planner.LocalCourse); + await module.SortModuleItems( (ulong)courseCanvasId, canvasModule.Id, canvas diff --git a/Management/Models/Local/Assignment/LocalAssignmentMarkdownParser.cs b/Management/Models/Local/Assignment/LocalAssignmentMarkdownParser.cs index ca14924..586e16b 100644 --- a/Management/Models/Local/Assignment/LocalAssignmentMarkdownParser.cs +++ b/Management/Models/Local/Assignment/LocalAssignmentMarkdownParser.cs @@ -11,7 +11,7 @@ public static class LocalAssignmentMarkdownParser var settingsString = input.Split("---")[0]; var (name, localAssignmentGroupName, submissionTypes, dueAt, lockAt) = parseSettings(settingsString); - var description = input.Split("---\n")[1].Split("## Rubric")[0]; + var description = String.Join("---\n", input.Split("---\n")[1..]).Split("## Rubric")[0]; var rubricString = input.Split("## Rubric\n")[1]; var rubric = ParseRubricMarkdown(rubricString); diff --git a/README.md b/README.md index 40762c5..8b79366 100644 --- a/README.md +++ b/README.md @@ -17,28 +17,3 @@ Apparently the VSCode razor extension was compiled with a preview of dotnet 6... The issue can be tracked [here](https://github.com/dotnet/razor/issues/6241) - - - -"Name: test assignment -LockAt: 1/1/0001 12:00:00 AM -DueAt: 1/1/0001 12:00:00 AM -AssignmentGroupName: Final Project -SubmissionTypes: -- online_upload - ---- -here is the description -## Rubric -- 4pts: do task 1 -- 2pts: do task 2 -" - - -"Name: test assignment -LockAt: 1/1/0001 12:00:00 AM -DueAt: 1/1/0001 12:00:00 AM -AssignmentGroupName: Final Project -SubmissionTypes: - ----