@using Markdig @inject CoursePlanner planner @inject AssignmentEditorContext assignmentContext @code { protected override void OnInitialized() { assignmentContext.StateHasChanged += reload; reload(); } private void reload() { if (assignmentContext.Assignment != null) { if(rawText == string.Empty) { rawText = assignmentContext.Assignment.ToMarkdown(); this.InvokeAsync(this.StateHasChanged); } } } public void Dispose() { assignmentContext.StateHasChanged -= reload; } private string rawText { get; set; } = string.Empty; private string? error = null; public bool? UseTemplate { get; set; } = null; public string? TemplateId { get; set; } private void handleChange(string newRawAssignment) { rawText = newRawAssignment; if (newRawAssignment != string.Empty) { try { var parsed = LocalAssignment.ParseMarkdown(newRawAssignment); error = null; assignmentContext.SaveAssignment(parsed); } catch(AssignmentMarkdownParseException e) { error = e.Message; } catch(RubricMarkdownParseException e) { error = e.Message; } finally { StateHasChanged(); } } StateHasChanged(); } private MarkupString preview { get => (MarkupString)Markdown.ToHtml(assignmentContext?.Assignment?.Description ?? ""); } } @if(assignmentContext.Assignment != null && planner.LocalCourse != null) {
@if (error != null) {

Error: @error

}
Due At: @assignmentContext.Assignment.DueAt
Lock At: @assignmentContext.Assignment.LockAt
Assignment Group Name @assignmentContext.Assignment.LocalAssignmentGroupName
Submission Types

@(preview)

}