Esempio 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));
        }
Esempio n. 2
0
 private void CustomProjectTo(ExamInProgressViewModel examInProgress, IQueryable <Word> words)
 {
     foreach (var word in words)
     {
         examInProgress.Words.Push(this.mapper.Map <WordInExamViewModel>(word));
     }
 }
Esempio n. 3
0
        public IActionResult Create(ExamCreateViewModel model)
        {
            if (!this.ModelState.IsValid || !model.IsValidExam)
            {
                return(this.View("Error"));
            }

            ExamInProgressViewModel examInProgress = this.mapper.Map <ExamInProgressViewModel>(model);

            IQueryable <Word> words = this.examService.GetNeededWords(
                model.Order.ToString(),
                model.FromWord,
                model.ToWord,
                model.NumberOfQuestions);

            examInProgress.Words = new Stack <WordInExamViewModel>();

            this.CustomProjectTo(examInProgress, words);

            this.HttpContext.Session.SetObject("exam", examInProgress);

            return(this.RedirectToAction("AskQuestion"));
        }