Beispiel #1
0
        public ActionResult ShowQuiz(
            [Bind(Include =
                      "Id,AnswerOne,AnswerTwo,AnswerThree,AnswerFour,AnswerFive,AnswerSix,AnswerSeven,AnswerEight,AnswerNine,AnswerTen")]
            EvaluateQuizBindingModel model)
        {
            string userId  = this.User.Identity.GetUserId();
            int    gradeId = this.service.EvaluateQuiz(model, userId);

            return(this.RedirectToAction("QuizResult", new { id = gradeId }));
        }
        public int EvaluateQuiz(EvaluateQuizBindingModel model, string userId)
        {
            int result = 0;

            result = this.CheckAnswer(model.AnswerOne, result);
            result = this.CheckAnswer(model.AnswerTwo, result);
            result = this.CheckAnswer(model.AnswerThree, result);
            result = this.CheckAnswer(model.AnswerFour, result);
            result = this.CheckAnswer(model.AnswerFive, result);
            result = this.CheckAnswer(model.AnswerSix, result);
            result = this.CheckAnswer(model.AnswerSeven, result);
            result = this.CheckAnswer(model.AnswerEight, result);
            result = this.CheckAnswer(model.AnswerNine, result);
            result = this.CheckAnswer(model.AnswerTen, result);

            Quiz quiz = this.Context.Quizzes.Find(model.Id);

            if (quiz == null)
            {
                throw new ArgumentNullException(nameof(model.Id), "There is no Quiz with such Id.");
            }
            Course course = quiz.Course;
            User   user   = this.GetCurrentUser(userId);
            Grade  grade  = new Grade()
            {
                Student   = user,
                Course    = course,
                Result    = result,
                QuizTitle = quiz.Title
            };

            this.Context.Grades.Add(grade);
            this.Context.SaveChanges();

            return(grade.Id);
        }