@implements IDisposable; @inject IMemoryTesterService MemoryTesterService;
@EntityMemory.Name @foreach (var question in questions) { var questionWrong = hasBeenSubmitted && !question.IsRevealed && question.Guess != question.Answer; @if (questionWrong) {
The correct answer was @question.Answer
} }
@code { [Parameter] public MemoryEntityModel EntityMemory { get; set; } private List questions { get; set; } private bool hasBeenSubmitted = false; private bool isCorrect = false; private bool isWrong = false; public int Guess { get; set; } protected override void OnInitialized() { MemoryTesterService.Subscribe(OnMemoryEvent); OnRefresh(); } void IDisposable.Dispose() { MemoryTesterService.Unsubscribe(OnMemoryEvent); } void OnMemoryEvent(MemoryTesterEvent memoryTesterEvent) { if (memoryTesterEvent == MemoryTesterEvent.OnVerify) { OnVerify(); } if (memoryTesterEvent == MemoryTesterEvent.OnRefresh) { OnRefresh(); } } public void OnAnswerEntered(AnswerEventArgs answerEventArgs, MemoryQuestionModel question) { question.Guess = answerEventArgs.Guess; MemoryTesterService.Update(question); } void OnVerify() { hasBeenSubmitted = true; isCorrect = true; foreach (var question in questions) { if (question.Answer != question.Guess) { isCorrect = false; isWrong = true; return; } } StateHasChanged(); } void OnRefresh() { hasBeenSubmitted = false; isCorrect = false; isWrong = false; questions = (from question in MemoryTesterService.GetQuestions() where question.MemoryEntityModelId == EntityMemory.Id select question).ToList(); StateHasChanged(); } }