@using Markdig @inject CoursePlanner planner @inject AssignmentEditorContext assignmentContext @code { protected override void OnInitialized() { assignmentContext.StateHasChanged += reload; reload(); } private void reload() { if (assignmentContext.Assignment != null) { Description = assignmentContext.Assignment.Description; Preview = Markdown.ToHtml(Description); TemplateId = assignmentContext.Assignment.TemplateId; UseTemplate = TemplateId != null && TemplateId != ""; VariableValues = assignmentContext.Assignment.TemplateVariables; this.InvokeAsync(this.StateHasChanged); } } public void Dispose() { assignmentContext.StateHasChanged -= reload; } public string Description { get; set; } = default!; public bool? UseTemplate { get; set; } = null; public string? TemplateId { get; set; } public Dictionary VariableValues { get; set; } = new Dictionary(); private AssignmentTemplate? selectedTemplate => planner .LocalCourse? .AssignmentTemplates .FirstOrDefault(t => t.Id == TemplateId); public string Preview { get; set; } = String.Empty; private void saveDescription(ChangeEventArgs e) { if(assignmentContext.Assignment != null) { var newAssignment = assignmentContext.Assignment with { Description = e.Value?.ToString() ?? "" }; assignmentContext.SaveAssignment(newAssignment); } } private void saveTemplateId(ChangeEventArgs e) { if(assignmentContext.Assignment != null) { var newTemplateId = e.Value?.ToString(); var newAssignment = assignmentContext.Assignment with { Description = e.Value?.ToString() ?? "" }; assignmentContext.SaveAssignment(newAssignment); } } } @if(assignmentContext.Assignment != null && planner.LocalCourse != null) {
@if (UseTemplate ?? false) {
VARIABLES: @if (selectedTemplate != null) { var variables = AssignmentTemplate.GetVariables(selectedTemplate.Markdown); @foreach (var variable in variables) {
} }
} else {
HTML Preview