@using Markdig @using Shared.Components.AssignmentForm @inject CoursePlanner planner @inject AssignmentEditorContext assignmentContext @code { [Parameter, EditorRequired] public bool ShowHelp { get; set; } = false; 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 ?? ""); } private string HelpText() { var groupNames = string.Join("\n- " , planner.LocalCourse?.Settings.AssignmentGroups.Select(g => g.Name) ?? []); return $@" SubmissionTypes: - {AssignmentSubmissionType.ONLINE_TEXT_ENTRY} - {AssignmentSubmissionType.ONLINE_UPLOAD} - {AssignmentSubmissionType.DISCUSSION_TOPIC} Assignment Group Names: - {groupNames} "; } }
@if(ShowHelp) {
        @HelpText()
      
} @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
    @foreach(var t in assignmentContext.Assignment.SubmissionTypes) {
  • @t
  • }

@(preview)

}