@page "/editquiz" @using BlazorQuiz.Common.Models @inject HttpClient Http

Edit Blazor quiz!

@{ if (quiz == null) {

Loading...

} else { int quizIndex = 0; foreach (var quizItem in quiz) {

@quizItem.Question

@{ int choiceIndex = 0; } @foreach (var choice in quizItem.Options) { @choice
choiceIndex++; }
quizIndex++;
} } }

Add New

@if (_new.Options is not null) { foreach (var item in _new.Options) {
@item
} }





@code { private Quiz[] quiz; private Quiz _new=new Quiz(); private bool _loaded = false; private string UserInput = string.Empty; bool _isTaskRunning = false; protected override async Task OnInitializedAsync() { await LoadQuiz(); _loaded = true; } private async Task LoadQuiz() { quiz = await Http.GetFromJsonAsync("https://blazorquizfunctionapp20221013002852.azurewebsites.net/api/BlazorQuiz"); } private void CheckInput(KeyboardEventArgs keyEvent) { if (keyEvent.Key == "Enter") { AddToList(UserInput); UserInput = string.Empty; } } private void AddToList(string str) { _new.Options.Add(str); } public async Task AddQuestion(){ _isTaskRunning = true; _new.id = (quiz.Count() + 3).ToString(); await Http.PostAsJsonAsync("https://blazorquizfunctionapp20221013002852.azurewebsites.net/api/PostQuestion", _new); await LoadQuiz(); _isTaskRunning = false; _new = new Quiz(); } public async Task RemoveQuestion(Quiz question) { _isTaskRunning = true; quiz = quiz.Where(q => q != question).ToArray(); // Also tried _cards.RemoveAll(i => i.TitleElementId == card.TitleElementId); await Http.PutAsJsonAsync("https://blazorquizfunctionapp20221013002852.azurewebsites.net/api/DeleteQuestion", question); await LoadQuiz(); _isTaskRunning = false; } }