public IActionResult AskQuestion(bool isRightAnswer = false) { ExamInProgressViewModel currentExam = this.HttpContext.Session.GetObject <ExamInProgressViewModel>("exam"); if (currentExam.Words.Count == 0) { ExamResultViewModel resultModel = this.mapper.Map <ExamResultViewModel>(currentExam); return(this.RedirectToAction("Result", resultModel)); } if (isRightAnswer) { currentExam.RightAnswers += 1; } currentExam.CurrentQuestion = currentExam.Words.Pop(); currentExam.CurrentQuestionSequelNumber += 1; ExamAnswerViewModel model = this.mapper.Map <ExamAnswerViewModel>(currentExam); this.HttpContext.Session.SetObject("exam", currentExam); return(this.View(model)); }
public async Task <IActionResult> Attempt(int?id) { if (id == null) { NotFound(); } var viewModel = new ExamAttemptViewModel { Exam = await _context.Exams.Include(e => e.Questions).ThenInclude(q => q.Question).ThenInclude(q => q.Answers).FirstOrDefaultAsync(e => e.ExamId == id), ExamId = (int)id, User = await _userManager.FindByIdAsync(_userManager.GetUserId(User)), UserId = _userManager.GetUserId(User), ParticipationDate = DateTime.Now }; var questions = new List <ExamQuestionViewModel>(); foreach (ExamQuestion question in viewModel.Exam.Questions) { var questionVM = new ExamQuestionViewModel { QuestionId = question.Question.QuestionId, Text = question.Question.Text, QuestionType = question.Question.QuestionType }; var answers = new List <ExamAnswerViewModel>(); foreach (Answer answer in question.Question.Answers) { var answerVM = new ExamAnswerViewModel { Text = answer.Text, AnswerId = answer.AnswerId }; answers.Add(answerVM); } questionVM.Answers = answers; questions.Add(questionVM); } viewModel.Questions = questions; if (viewModel == null) { return(NotFound()); } return(View(viewModel)); }
public IActionResult AnswerToAnswer(ExamAnswerViewModel model) { return(this.View(model)); }