Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
 public IActionResult AnswerToAnswer(ExamAnswerViewModel model)
 {
     return(this.View(model));
 }