コード例 #1
0
        public IActionResult Testing()
        {
            if (HttpContext.Session.Get <Testing>("testing") == null)
            {
                return(RedirectToAction("Index", "User"));
            }

            Testing testing = HttpContext.Session.Get <Testing>("testing");

            UserTestingViewModel vm = new UserTestingViewModel();

            vm.Question = testing.Questions[testing.Position];
            vm.Answers  = answerRepository.getAll()
                          .Where(x => x.QuestionId == vm.Question.Id)
                          .ToList();

            return(View(vm));
        }
コード例 #2
0
        public IActionResult Next(NextQuestionViewModel nvm)
        {
            if (HttpContext.Session.Get <Testing>("testing") == null)
            {
                return(RedirectToAction("Index", "User"));
            }

            //check user's answer
            Testing testing = HttpContext.Session.Get <Testing>("testing");

            if (nvm.Answers == null)
            {
                UserTestingViewModel uvm = new UserTestingViewModel();
                uvm.Question = testing.Questions[testing.Position];
                uvm.Answers  = answerRepository.getAll()
                               .Where(x => x.QuestionId == uvm.Question.Id)
                               .ToList();

                return(View(uvm));
            }


            var question = testing.Questions[testing.Position];
            var answers  = answerRepository.getAll()
                           .Where(x => x.QuestionId == question.Id)
                           .ToList();

            //int userAnswerCounter = 0;

            for (int i = 0; i < nvm.Answers.Length; i++)
            {
                int answerId = nvm.Answers[i];
                var answer   = answers.Where(x => x.Id == answerId).FirstOrDefault();
                if (answer != null)
                {
                    if (answer.Correct == 1)
                    {
                        testing.Score += question.Score;
                        break;
                    }
                }
            }

            /*
             * int questionAnswerCounter = answers.Where(x => x.Correct == 1).ToList().Count;
             *
             * if (userAnswerCounter == questionAnswerCounter)
             * {
             *  testing.Score += question.Score;
             * }*/

            testing.Position++;

            HttpContext.Session.Set <Testing>("testing", testing);

            if (testing.Position == testing.Questions.Count)
            {
                return(RedirectToAction("Result", "User"));
            }

            UserTestingViewModel vm = new UserTestingViewModel();

            vm.Question = testing.Questions[testing.Position];
            vm.Answers  = answerRepository.getAll()
                          .Where(x => x.QuestionId == vm.Question.Id)
                          .ToList();

            return(View(vm));
        }