diff --git a/Management/Models/Local/Assignment/LocalAssignment.cs b/Management/Models/Local/Assignment/LocalAssignment.cs
index c31d0dd..0c484a1 100644
--- a/Management/Models/Local/Assignment/LocalAssignment.cs
+++ b/Management/Models/Local/Assignment/LocalAssignment.cs
@@ -40,7 +40,6 @@ public record LocalAssignment
public string GetDescriptionHtml()
{
var rubricHtml = GetRubricHtml();
-
return Markdig.Markdown.ToHtml(Description) + "
" + rubricHtml;
}
@@ -49,53 +48,8 @@ public record LocalAssignment
.FirstOrDefault(g => g.Name == LocalAssignmentGroupName)?
.CanvasId;
-
- public string ToYaml()
- {
- var serializer = new SerializerBuilder().DisableAliases().Build();
- var yaml = serializer.Serialize(this);
- return yaml;
- }
-
- public string ToMarkdown()
- {
- var settingsMarkdown = settingsToMarkdown();
- var rubricMarkdown = RubricToMarkdown();
- var assignmentMarkdown =
- settingsMarkdown + "\n"
- + "---\n\n"
- + Description + "\n\n"
- + "## Rubric\n\n"
- + rubricMarkdown;
-
- return assignmentMarkdown;
- }
-
- public string RubricToMarkdown()
- {
- var builder = new StringBuilder();
- foreach (var item in Rubric)
- {
- var pointLabel = item.Points > 1 ? "pts" : "pt";
- builder.Append($"- {item.Points}{pointLabel}: {item.Label}" + "\n");
- }
- return builder.ToString();
- }
-
- private string settingsToMarkdown()
- {
- var builder = new StringBuilder();
- builder.Append($"Name: {Name}" + "\n");
- builder.Append($"LockAt: {LockAt}" + "\n");
- builder.Append($"DueAt: {DueAt}" + "\n");
- builder.Append($"AssignmentGroupName: {LocalAssignmentGroupName}" + "\n");
- builder.Append($"SubmissionTypes:" + "\n");
- foreach (var submissionType in SubmissionTypes)
- {
- builder.Append($"- {submissionType}" + "\n");
- }
- return builder.ToString();
- }
-
+ public string ToMarkdown() => this.AssignmentToMarkdown();
+ public string RubricToMarkdown() => this.AssignmentRubricToMarkdown();
public static LocalAssignment ParseMarkdown(string input) => LocalAssignmentMarkdownParser.ParseMarkdown(input);
+ public static IEnumerable ParseRubricMarkdown(string rawMarkdown) => LocalAssignmentMarkdownParser.ParseRubricMarkdown(rawMarkdown);
}
diff --git a/Management/Models/Local/Assignment/LocalAssignmentMarkdownCreator.cs b/Management/Models/Local/Assignment/LocalAssignmentMarkdownCreator.cs
new file mode 100644
index 0000000..c4a306a
--- /dev/null
+++ b/Management/Models/Local/Assignment/LocalAssignmentMarkdownCreator.cs
@@ -0,0 +1,48 @@
+using System.Text;
+using LocalModels;
+
+namespace LocalModels;
+public static class LocalAssignmentMarkdownCreator
+{
+
+
+ public static string AssignmentToMarkdown(this LocalAssignment assignment)
+ {
+ var settingsMarkdown = assignment.settingsToMarkdown();
+ var rubricMarkdown = assignment.RubricToMarkdown();
+ var assignmentMarkdown =
+ settingsMarkdown + "\n"
+ + "---\n\n"
+ + assignment.Description + "\n\n"
+ + "## Rubric\n\n"
+ + rubricMarkdown;
+
+ return assignmentMarkdown;
+ }
+
+ public static string AssignmentRubricToMarkdown(this LocalAssignment assignment)
+ {
+ var builder = new StringBuilder();
+ foreach (var item in assignment.Rubric)
+ {
+ var pointLabel = item.Points > 1 ? "pts" : "pt";
+ builder.Append($"- {item.Points}{pointLabel}: {item.Label}" + "\n");
+ }
+ return builder.ToString();
+ }
+
+ private static string settingsToMarkdown(this LocalAssignment assignment)
+ {
+ var builder = new StringBuilder();
+ builder.Append($"Name: {assignment.Name}" + "\n");
+ builder.Append($"LockAt: {assignment.LockAt}" + "\n");
+ builder.Append($"DueAt: {assignment.DueAt}" + "\n");
+ builder.Append($"AssignmentGroupName: {assignment.LocalAssignmentGroupName}" + "\n");
+ builder.Append($"SubmissionTypes:" + "\n");
+ foreach (var submissionType in assignment.SubmissionTypes)
+ {
+ builder.Append($"- {submissionType}" + "\n");
+ }
+ return builder.ToString();
+ }
+}
\ No newline at end of file
diff --git a/Management/Models/Local/Assignment/LocalAssignmentMarkdownParser.cs b/Management/Models/Local/Assignment/LocalAssignmentMarkdownParser.cs
index 3b0c66a..e9f5ad8 100644
--- a/Management/Models/Local/Assignment/LocalAssignmentMarkdownParser.cs
+++ b/Management/Models/Local/Assignment/LocalAssignmentMarkdownParser.cs
@@ -50,11 +50,11 @@ public static class LocalAssignmentMarkdownParser
private static List parseSubmissionTypes(string input)
{
input = input.Replace("\r\n", "\n");
- List submissionTypes = new List();
+ List submissionTypes = [];
// Define a regular expression pattern to match the bulleted list items
string startOfTypePattern = @"- (.+)";
- Regex regex = new Regex(startOfTypePattern);
+ Regex regex = new(startOfTypePattern);
var words = input.Split("SubmissionTypes:");
var inputAfterSubmissionTypes = words[1];