public IActionResult Testing() { if (HttpContext.Session.Get <Testing>("testing") == null) { return(RedirectToAction("Index", "User")); } Testing testing = HttpContext.Session.Get <Testing>("testing"); UserTestingViewModel vm = new UserTestingViewModel(); vm.Question = testing.Questions[testing.Position]; vm.Answers = answerRepository.getAll() .Where(x => x.QuestionId == vm.Question.Id) .ToList(); return(View(vm)); }
public IActionResult Next(NextQuestionViewModel nvm) { if (HttpContext.Session.Get <Testing>("testing") == null) { return(RedirectToAction("Index", "User")); } //check user's answer Testing testing = HttpContext.Session.Get <Testing>("testing"); if (nvm.Answers == null) { UserTestingViewModel uvm = new UserTestingViewModel(); uvm.Question = testing.Questions[testing.Position]; uvm.Answers = answerRepository.getAll() .Where(x => x.QuestionId == uvm.Question.Id) .ToList(); return(View(uvm)); } var question = testing.Questions[testing.Position]; var answers = answerRepository.getAll() .Where(x => x.QuestionId == question.Id) .ToList(); //int userAnswerCounter = 0; for (int i = 0; i < nvm.Answers.Length; i++) { int answerId = nvm.Answers[i]; var answer = answers.Where(x => x.Id == answerId).FirstOrDefault(); if (answer != null) { if (answer.Correct == 1) { testing.Score += question.Score; break; } } } /* * int questionAnswerCounter = answers.Where(x => x.Correct == 1).ToList().Count; * * if (userAnswerCounter == questionAnswerCounter) * { * testing.Score += question.Score; * }*/ testing.Position++; HttpContext.Session.Set <Testing>("testing", testing); if (testing.Position == testing.Questions.Count) { return(RedirectToAction("Result", "User")); } UserTestingViewModel vm = new UserTestingViewModel(); vm.Question = testing.Questions[testing.Position]; vm.Answers = answerRepository.getAll() .Where(x => x.QuestionId == vm.Question.Id) .ToList(); return(View(vm)); }