예제 #1
0
        public async Task <ActionResult> PlayQuizAsync(string quizid)
        {
            try
            {
                Quiz quiz = await _quizRepository.GetQuizForQuizIdAsync(Guid.Parse(quizid));

                ScoreUser_VM scoreUser_VM = new ScoreUser_VM()
                {
                    QName = quiz.Name, QId = quiz.Id
                };
                var questions = await _questionRepository.GetQuestionsForQuizAsync(scoreUser_VM.QId);

                var question = questions[scoreUser_VM.QIndex];

                var answers = await _answerRepository.GetAnswersForQuestionAsync(question.Id.ToString());

                scoreUser_VM.Question = question;
                scoreUser_VM.Answers  = answers;
                ViewBag.Score         = 0;
                return(View("PlayQuiz", scoreUser_VM));
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.InnerException.Message);
                return(View());
            }
        }
예제 #2
0
        public async Task <ActionResult> NextQuestion(Guid QId, string QName, int QIndex, string Correct, int Score)
        {
            try
            {
                ScoreUser_VM score1 = new ScoreUser_VM()
                {
                    QName = QName, QId = QId, QIndex = QIndex
                };
                var questions = await _questionRepository.GetQuestionsForQuizAsync(score1.QId);

                score1.QIndex++;
                if (Correct == "correct")
                {
                    Score += 1;
                }
                if (score1.QIndex >= questions.Count())
                {
                    Score newscore = new Score()
                    {
                        ApplicationUserId = _userManager.GetUserId(User),
                        QuizId            = score1.QId,
                        MaxScore          = questions.Count(),
                        FinalScore        = Score
                    };
                    await _scoreRepository.AddScoreAsync(newscore);

                    return(View("ResultQuiz", newscore));
                }
                else
                {
                    var            objquestion = questions[score1.QIndex];
                    IList <Answer> answers     = await _answerRepository.GetAnswersForQuestionAsync(objquestion.Id.ToString());

                    score1.Question = objquestion;
                    score1.Answers  = answers;
                    ViewBag.score   = Score;
                    return(View("PlayQuiz", score1));
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.InnerException.Message);
                return(View());
            }
        }