diff --git a/Management.Web/Shared/Components/AssignmentForm/AssignmentDescriptionEditor.razor b/Management.Web/Shared/Components/AssignmentForm/AssignmentDescriptionEditor.razor index e65d916..56c911f 100644 --- a/Management.Web/Shared/Components/AssignmentForm/AssignmentDescriptionEditor.razor +++ b/Management.Web/Shared/Components/AssignmentForm/AssignmentDescriptionEditor.razor @@ -1,26 +1,33 @@ @using Markdig @inject CoursePlanner planner +@inject AssignmentEditorContext assignmentContext @code { - @* protected override void OnInitialized() + protected override void OnInitialized() { - planner.StateHasChanged += reload; + assignmentContext.StateHasChanged += reload; + reload(); } private void reload() { - this.InvokeAsync(this.StateHasChanged); + if (assignmentContext.Assignment != null) + { + Description = assignmentContext.Assignment.Description; + Console.WriteLine("loaded description"); + Console.WriteLine(Description); + Preview = Markdown.ToHtml(Description); + TemplateId = assignmentContext.Assignment.TemplateId; + UseTemplate = TemplateId != null && TemplateId != ""; + VariableValues = assignmentContext.Assignment.TemplateVariables; + this.InvokeAsync(this.StateHasChanged); + } } public void Dispose() { - planner.StateHasChanged -= reload; - } *@ - - - [Parameter, EditorRequired] - public LocalAssignment Assignment { get; set; } = default!; - + assignmentContext.StateHasChanged -= reload; + } public string Description { get; set; } = default!; public bool? UseTemplate { get; set; } = null; @@ -29,100 +36,71 @@ public Dictionary VariableValues { get; set; } = new Dictionary(); - protected override void OnParametersSet() - { - Description = Assignment.Description; - Preview = Markdown.ToHtml(Assignment.Description); - if (currentDescription == null) - currentDescription = Description; - - TemplateId = Assignment.TemplateId; - if (UseTemplate == null) - { - UseTemplate = Assignment.TemplateId != null && Assignment.TemplateId != ""; - } - } - private AssignmentTemplate? selectedTemplate => planner .LocalCourse? .AssignmentTemplates - .FirstOrDefault(t => t.Id == Assignment.TemplateId); - public string Preview { get; set; } + .FirstOrDefault(t => t.Id == TemplateId); - private void SaveAssignment(LocalAssignment newAssignment) + public string Preview { get; set; } = String.Empty; + + private void saveDescription(ChangeEventArgs e) { - if(planner.LocalCourse != null) + if(assignmentContext.Assignment != null) { - var currentModule = planner - .LocalCourse - .Modules - .First(m => - m.Assignments - .Select(a => a.Id) - .Contains(Assignment.Id) - ) ?? throw new Exception("could not find current module in assignment description form"); - - var updatedModules = planner.LocalCourse.Modules.Select(m => - m.Name == currentModule.Name - ? currentModule with - { - Assignments=currentModule.Assignments.Select(a => - a.Id == newAssignment.Id - ? newAssignment - : a - ).ToArray() - } - : m - ).ToArray(); - - planner.LocalCourse = planner.LocalCourse with + var newAssignment = assignmentContext.Assignment with { - Modules=updatedModules + 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); } } - private string? currentDescription { get; set; } = null; } - -
- - -
- -@if (UseTemplate ?? false) +@if(assignmentContext.Assignment != null && planner.LocalCourse != null) { - @if (planner.LocalCourse != null) +
+ + +
+ + @if (UseTemplate ?? false) {
-
-
- - + + @foreach (var template in planner.LocalCourse.AssignmentTemplates) { } @@ -149,10 +127,11 @@ var newDictionary = new Dictionary(VariableValues); newDictionary[variable] = newValue; - SaveAssignment(Assignment with + var newAssignment = assignmentContext.Assignment with { TemplateVariables = newDictionary - }); + }; + assignmentContext.SaveAssignment(newAssignment); })" />
@@ -160,35 +139,34 @@ }
+ } -} -else -{ + else + { -
-
- -
-
- HTML Preview - -
-
-
+
-