From 4de612254948b1d05c3bd1da72690123aef96f25 Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Sat, 12 Aug 2023 10:03:48 -0600 Subject: [PATCH] updated quiz form edtor --- .../Components/Quiz/EditableQuizAnswer.razor | 88 ++++++++++ .../Shared/Components/Quiz/QuizForm.razor | 120 ++++++++++++- .../Components/Quiz/QuizQuestionForm.razor | 157 ++++++++++++++++++ .../Configuration/QuizEditorContext.cs | 1 + Management/Models/Local/LocalAssignment.cs | 20 +-- Management/Models/Local/LocalQuiz.cs | 10 +- Management/Models/Local/LocalQuizQuestion.cs | 28 ++++ .../Models/Local/LocalQuizQuestionAnswer.cs | 10 ++ Management/Services/YamlManager.cs | 2 +- 9 files changed, 421 insertions(+), 15 deletions(-) create mode 100644 Management.Web/Shared/Components/Quiz/EditableQuizAnswer.razor create mode 100644 Management.Web/Shared/Components/Quiz/QuizQuestionForm.razor create mode 100644 Management/Models/Local/LocalQuizQuestion.cs create mode 100644 Management/Models/Local/LocalQuizQuestionAnswer.cs diff --git a/Management.Web/Shared/Components/Quiz/EditableQuizAnswer.razor b/Management.Web/Shared/Components/Quiz/EditableQuizAnswer.razor new file mode 100644 index 0000000..990d127 --- /dev/null +++ b/Management.Web/Shared/Components/Quiz/EditableQuizAnswer.razor @@ -0,0 +1,88 @@ + + +@code { + [Parameter, EditorRequired] + public LocalQuizQuestionAnswer Answer { get; set; } = default!; + [Parameter, EditorRequired] + public LocalQuizQuestion Question { get; set; } = default!; + + [Parameter, EditorRequired] + public Action SaveAnswer { get; set; } = (_) => {}; + + private string _text { get; set; } = string.Empty; + private string text + { + get => _text; + set + { + _text = value; + SaveAnswer(Answer with { Text = _text }); + } + } + + protected override void OnParametersSet() + { + if(_text == string.Empty) + _text = Answer.Text; + base.OnParametersSet(); + } + + private void handleOneAnswerChange() + { + SaveAnswer(Answer with {Correct = !Answer.Correct}); + } +} + + +
+
+ @if(Question.QuestionType == QuestionType.MULTIPLE_ANSWERS) + { +
+ + +
+ } + @if(Question.QuestionType == QuestionType.MULTIPLE_CHOICE) + { +
+ + +
+ } +
+
+
+