refactored assignment markdown parsing and creation to their own classes

This commit is contained in:
2024-01-05 08:31:39 -07:00
parent e6cc3c2a3c
commit 9f4c7bf380
3 changed files with 53 additions and 51 deletions

View File

@@ -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();
}
}