Example #1
0
        public async Task <IActionResult> Quiz(int?id)
        {
            var user = await usersRepository.Get(id);

            if (user == null)
            {
                return(RedirectToAction("Index"));
            }

            var allUserAnswers = userAnswersRepository.GetByUserId(id);
            var allQuestions   = questionsRepository.GetAll();

            if (allUserAnswers.Count < allQuestions.Count)
            {
                var questionOptions         = optionsRepository.GetByQuestionId(allQuestions[allUserAnswers.Count].QuestionId);
                HomeQuizViewModel viewModel = new HomeQuizViewModel
                {
                    Question = allQuestions[allUserAnswers.Count],
                    Options  = new List <Option>
                    {
                        new Option {
                            Id = 1, OptionText = questionOptions[0].OptionText
                        },
                        new Option {
                            Id = 2, OptionText = questionOptions[1].OptionText
                        },
                        new Option {
                            Id = 3, OptionText = questionOptions[2].OptionText
                        },
                        new Option {
                            Id = 4, OptionText = questionOptions[3].OptionText
                        }
                    },
                    QuestionId = allQuestions[allUserAnswers.Count].QuestionId
                };
                ViewBag.QuestionNumber = allUserAnswers.Count + 1;
                return(View(viewModel));
            }
            else
            {
                return(RedirectToAction("Result", new { id }));
            }
        }
Example #2
0
        public async Task <IActionResult> Quiz(int?id, HomeQuizViewModel data)
        {
            if (ModelState.IsValid)
            {
                var userAnswer = new UserAnswers
                {
                    OptionChosen = data.ChosenOption,
                    UserId       = id,
                    QuestionId   = data.QuestionId
                };

                await userAnswersRepository.Create(userAnswer);

                return(RedirectToAction("Quiz", new { id }));
            }

            var allUserAnswers  = userAnswersRepository.GetByUserId(id);
            var allQuestions    = questionsRepository.GetAll();
            var questionOptions = optionsRepository.GetByQuestionId(allQuestions[allUserAnswers.Count].QuestionId);

            data.Question = allQuestions[allUserAnswers.Count];
            data.Options  = new List <Option>
            {
                new Option {
                    Id = 1, OptionText = questionOptions[0].OptionText
                },
                new Option {
                    Id = 2, OptionText = questionOptions[1].OptionText
                },
                new Option {
                    Id = 3, OptionText = questionOptions[2].OptionText
                },
                new Option {
                    Id = 4, OptionText = questionOptions[3].OptionText
                }
            };
            data.QuestionId = allQuestions[allUserAnswers.Count].QuestionId;
            return(View(data));
        }