diff --git a/QuizExperiment.Admin/Client/Shared/Client/GuessTheNumberQuestion.razor b/QuizExperiment.Admin/Client/Shared/Client/GuessTheNumberQuestion.razor new file mode 100644 index 0000000..234f953 --- /dev/null +++ b/QuizExperiment.Admin/Client/Shared/Client/GuessTheNumberQuestion.razor @@ -0,0 +1,56 @@ +@using QuizExperiment.Models.Client + +@{ + if(Question != null) + { +
+

@Question.Title

+
+
+

Enter a number between @Question.MinValue and @Question.MaxValue

+ + +
+
+
+ } +} + +@code { + + [Parameter] + public ClientGuessTheNumberQuestion? Question { get; set; } + + [Parameter] + public EventCallback OnAnswerSubmit { get; set; } + + private int? userGuess; + + private bool IsValidGuess() + { + if (!userGuess.HasValue || Question == null) return false; + return userGuess.Value >= Question.MinValue && userGuess.Value <= Question.MaxValue; + } + + private async Task SubmitAnswer() + { + if (!IsValidGuess()) return; + + var answer = new ClientGuessTheNumberAnswer + { + Answer = userGuess!.Value + }; + await OnAnswerSubmit.InvokeAsync(answer); + } + +} diff --git a/QuizExperiment.Admin/Client/Shared/Client/QuestionPicker.razor b/QuizExperiment.Admin/Client/Shared/Client/QuestionPicker.razor index ca39148..ec59ce5 100644 --- a/QuizExperiment.Admin/Client/Shared/Client/QuestionPicker.razor +++ b/QuizExperiment.Admin/Client/Shared/Client/QuestionPicker.razor @@ -19,6 +19,10 @@ { } + else if(Question is ClientGuessTheNumberQuestion guessTheNumberQuestion) + { + + } else {

Unsupported question type.

diff --git a/QuizExperiment.Admin/Client/Shared/Edit/GuessTheNumberQuestion.razor b/QuizExperiment.Admin/Client/Shared/Edit/GuessTheNumberQuestion.razor new file mode 100644 index 0000000..705614b --- /dev/null +++ b/QuizExperiment.Admin/Client/Shared/Edit/GuessTheNumberQuestion.razor @@ -0,0 +1,45 @@ +@using QuizModels = QuizExperiment.Models +@using System.Text.Json +@inject HttpClient Http + +@if (Question is not null) +{ + var guessTheNumberQuestion = Question as QuizModels.GuessTheNumberQuestion; + if (guessTheNumberQuestion is not null) + { + +
+ + + + + + + + + + + + + +
ANSWER RANGE
+ + + + + +
+ + +
+
+ } +} + +@code { + [Parameter] + public QuizModels.Question? Question { get; set; } +} diff --git a/QuizExperiment.Admin/Client/Shared/Edit/QuestionTypePickerModal.razor b/QuizExperiment.Admin/Client/Shared/Edit/QuestionTypePickerModal.razor index d4e0edc..d6c150e 100644 --- a/QuizExperiment.Admin/Client/Shared/Edit/QuestionTypePickerModal.razor +++ b/QuizExperiment.Admin/Client/Shared/Edit/QuestionTypePickerModal.razor @@ -28,6 +28,12 @@ Type the Answer +
+ +