public async Task <IActionResult> Quiz(int?id) { var user = await usersRepository.Get(id); if (user == null) { return(RedirectToAction("Index")); } var allUserAnswers = userAnswersRepository.GetByUserId(id); var allQuestions = questionsRepository.GetAll(); if (allUserAnswers.Count < allQuestions.Count) { var questionOptions = optionsRepository.GetByQuestionId(allQuestions[allUserAnswers.Count].QuestionId); HomeQuizViewModel viewModel = new HomeQuizViewModel { Question = allQuestions[allUserAnswers.Count], Options = new List <Option> { new Option { Id = 1, OptionText = questionOptions[0].OptionText }, new Option { Id = 2, OptionText = questionOptions[1].OptionText }, new Option { Id = 3, OptionText = questionOptions[2].OptionText }, new Option { Id = 4, OptionText = questionOptions[3].OptionText } }, QuestionId = allQuestions[allUserAnswers.Count].QuestionId }; ViewBag.QuestionNumber = allUserAnswers.Count + 1; return(View(viewModel)); } else { return(RedirectToAction("Result", new { id })); } }
public async Task <IActionResult> Quiz(int?id, HomeQuizViewModel data) { if (ModelState.IsValid) { var userAnswer = new UserAnswers { OptionChosen = data.ChosenOption, UserId = id, QuestionId = data.QuestionId }; await userAnswersRepository.Create(userAnswer); return(RedirectToAction("Quiz", new { id })); } var allUserAnswers = userAnswersRepository.GetByUserId(id); var allQuestions = questionsRepository.GetAll(); var questionOptions = optionsRepository.GetByQuestionId(allQuestions[allUserAnswers.Count].QuestionId); data.Question = allQuestions[allUserAnswers.Count]; data.Options = new List <Option> { new Option { Id = 1, OptionText = questionOptions[0].OptionText }, new Option { Id = 2, OptionText = questionOptions[1].OptionText }, new Option { Id = 3, OptionText = questionOptions[2].OptionText }, new Option { Id = 4, OptionText = questionOptions[3].OptionText } }; data.QuestionId = allQuestions[allUserAnswers.Count].QuestionId; return(View(data)); }