Files
canvasManagement/Management/Features/Configuration/QuizEditorContext.cs

51 lines
1.2 KiB
C#

using LocalModels;
using Management.Planner;
public class QuizEditorContext
{
public event Action? StateHasChanged;
private CoursePlanner planner { get; }
public QuizEditorContext(CoursePlanner planner)
{
this.planner = planner;
}
private LocalQuiz? _quiz;
public LocalQuiz? Quiz
{
get => _quiz;
set
{
_quiz = value;
StateHasChanged?.Invoke();
}
}
public void SaveQuiz(LocalQuiz newQuiz)
{
if (planner.LocalCourse != null)
{
var currentModule =
planner.LocalCourse.Modules.First(m => m.Quizzes.Select(q => q.Id).Contains(newQuiz.Id))
?? throw new Exception("could not find current module in quiz editor context");
var updatedModules = planner.LocalCourse.Modules
.Select(
m =>
m.Name == currentModule.Name
? currentModule with
{
Quizzes = currentModule.Quizzes
.Select(q => q.Id == newQuiz.Id ? newQuiz : q)
.ToArray()
}
: m
)
.ToArray();
planner.LocalCourse = planner.LocalCourse with { Modules = updatedModules };
}
}
}