コード例 #1
0
        public ActionResult Result(SubmittedQuizViewModel quiz)
        {
            if (ModelState.IsValid)
            {
                Quiz passedQuiz = quizService.GetById(quiz.Id);

                QuizResultViewModel result = new QuizResultViewModel()
                { Title = passedQuiz.Title, Questions = new List<QuizQuestionResultViewModel>() };

                result.Total = quiz.Answers.Count;

                for (int i = 0; i < quiz.Answers.Count; i++)
                {
                    QuizQuestion testQuestion = passedQuiz.Questions.ElementAt(i);

                    QuizQuestionResultViewModel questionResult = new QuizQuestionResultViewModel()
                    {
                        Text = testQuestion.Text,
                        Answers = testQuestion.AnswerOptions.ToList(),
                        Correct = testQuestion.CorrectAnswer,
                        Selected = quiz.Answers[i]
                    };

                    if (questionResult.Selected == testQuestion.CorrectAnswer)
                    {
                        result.Correct++;
                    }

                    result.Questions.Add(questionResult);

                }

                User user = userService.GetByEmail(User.Identity.Name);

                if (user != null)
                {
                    QuizStatistic statistic = new QuizStatistic()
                    { DatePassed = DateTime.Now, QuizId = passedQuiz.Id, Correct = result.Correct, UserId = user.Id };
                    statisticService.Create(statistic);
                }

                return View(result);
            }

            return RedirectToAction("Index");
        }
コード例 #2
0
 public void Create(QuizStatistic statistic)
 {
     uow.StatisticRepository.Create(statistic.ToDalStatistic());
     uow.SaveChanges();
 }