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)); }
private void CustomProjectTo(ExamInProgressViewModel examInProgress, IQueryable <Word> words) { foreach (var word in words) { examInProgress.Words.Push(this.mapper.Map <WordInExamViewModel>(word)); } }
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")); }