@page "/quizstart" @using Blazored.LocalStorage; @using FWLAZ_Web.Data @using FWLAZ_Web.Objects @inject ILocalStorageService localStorage; @inject NavigationManager nav; @inject SessionState CurrentSession;

@CurrentSession.LoadGame?.Title

@if (CurrentSession.LoadGame?.CurrentQuestion != null) {

Frage @(CurrentSession.LoadGame.QuestionAnswers?.Count + 1) / @(CurrentSession.LoadGame.QuestionAnswers?.Count + @CurrentSession.LoadGame.Questions?.Count)

@CurrentSession.LoadGame.CurrentQuestion?.Text [Nr. @CurrentSession.LoadGame.CurrentQuestion?.Number]

@if (CurrentSession.LoadGame?.CurrentQuestion != null) { @foreach (Answer aw in CurrentSession.LoadGame.CurrentQuestion.Answers) {
@if (!ShowSolution) { } else { if (SelectedAnswers.Contains(aw) && aw.IsCorrect) { } else if (SelectedAnswers.Contains(aw) && !aw.IsCorrect) { } else if (aw.IsCorrect) { } else if (!aw.IsCorrect) { } }
} }
} else {

Ergebnis

Fragen Gesamt @(CurrentSession.LoadGame.QuestionAnswers.Count)
Korrekt beantwortet @(CurrentSession.LoadGame.QuestionAnswers.Where(qa => qa.IsCorrect).Count())
Falsch beantwortet @(CurrentSession.LoadGame.QuestionAnswers.Where(qa => !qa.IsCorrect).Count())
} @code { private string PrevURL = "/"; private bool ShowSolution { get; set; } private List SelectedAnswers { get; set; } = new(); protected override async Task OnInitializedAsync() { if (CurrentSession.LoadGame == null) { nav.NavigateTo(PrevURL); return; } if (CurrentSession.LoadGame.QuestionAnswers == null) CurrentSession.LoadGame.QuestionAnswers = new(); await InvokeAsync(StateHasChanged); } private void ToggleAnswer(Answer aw) { if (CurrentSession.LoadGame == null) return; if (CurrentSession.LoadGame.QuizIsMultipleChoice) { if (SelectedAnswers.Contains(aw)) { SelectedAnswers.Remove(aw); } else { SelectedAnswers.Add(aw); } } else { SelectedAnswers.Clear(); SelectedAnswers.Add(aw); } } private async Task NextQuestion(MouseEventArgs e) { if (ShowSolution == false) { ShowSolution = true; } else { ShowSolution = false; if (CurrentSession.LoadGame == null) return; if (CurrentSession.LoadGame.QuestionAnswers == null) CurrentSession.LoadGame.QuestionAnswers = new(); if (CurrentSession.LoadGame.CurrentQuestion != null) { CurrentSession.LoadGame.QuestionAnswers.Add(new(CurrentSession.LoadGame.CurrentQuestion) { GivenAnswers = SelectedAnswers, }); } SelectedAnswers.Clear(); CurrentSession.LoadGame.NextQuestion(); await CurrentSession.SaveAsync(); } } }