@using Management.Web.Shared.Components @inject QuizEditorContext quizContext @code { private Modal? modal { get; set; } private LocalQuiz testQuiz; private string? error { get; set; } = null; private string _quizMarkdownInput { get; set; } = ""; private string quizMarkdownInput { get => _quizMarkdownInput; set { _quizMarkdownInput = value; try { var newQuiz = LocalQuiz.ParseMarkdown(_quizMarkdownInput); error = null; testQuiz = newQuiz; quizContext.SaveQuiz(newQuiz); } catch(QuizMarkdownParseException e) { error = e.Message; StateHasChanged(); } } } protected override void OnInitialized() { quizContext.StateHasChanged += reload; } private void reload() { if (quizContext.Quiz != null) { if(quizMarkdownInput == "") { quizMarkdownInput = quizContext.Quiz.ToMarkdown(); } modal?.Show(); this.InvokeAsync(this.StateHasChanged); } } public void Dispose() { quizContext.StateHasChanged -= reload; } private void deleteQuiz() { quizContext.DeleteQuiz(); modal?.Hide(); } private async Task addToCanvas() { await quizContext.AddQuizToCanvas(); } private void onHide() { _quizMarkdownInput = ""; quizContext.Quiz = null; } } <div class="row justify-content-between"> <div class="col-auto"> @quizContext.Quiz?.Name </div> <div class="col-auto me-3"> Points: @quizContext.Quiz?.Questions.Sum(q => q.Points) </div> </div>