Beispiel #1
0
        public async Task <IActionResult> Take(TakeQuestionAnswerViewModel input)
        {
            await this.takesService.SaveTakedAnswerAsync(this.userManager.GetUserId(this.User), input.CurrentQuestionId, input.UserAnswerId);

            if (input.PageNumber + 1 > input.QuizQuestionsCount)
            {
                input.PageNumber = 0;
            }

            return(this.RedirectToAction("Take", "TakesQuiz", new { page = ++input.PageNumber }));
        }
Beispiel #2
0
        public IActionResult Take(int page = 1)
        {
            if (page <= 0)
            {
                return(this.NotFound());
            }

            TakeQuestionAnswerViewModel model = this.takesService.GetExamQuestion(this.userManager.GetUserId(this.User), page);

            model.Action = "Take";
            return(this.View(model));
        }
Beispiel #3
0
        public TakeQuestionAnswerViewModel GetExamQuestion(string userId, int page, int num = 1)
        {
            int  quizId = this.GetTakeQuizByUserId(userId);
            int  takeId = this.GetTake(userId).Id;
            Quiz quiz   = this.quizzesService.GetQuizById(quizId);
            QuestionQuizViewModel question = this.questionsService
                                             .GetQuestionsByQuizId <QuestionQuizViewModel>(quizId)
                                             .OrderByDescending(x => x.Id).Skip((page - 1) * ItemsPerPage)
                                             .Take(ItemsPerPage)
                                             .FirstOrDefault();

            TakeQuestionAnswerViewModel model = this.takeRepository.All()
                                                .Where(x => x.Id == takeId)
                                                .To <TakeQuestionAnswerViewModel>()
                                                .ToList()
                                                .FirstOrDefault();

            this.SetModelValue(page, takeId, question, model);
            return(model);
        }
Beispiel #4
0
 private void SetModelValue(int page, int takeId, QuestionQuizViewModel question, TakeQuestionAnswerViewModel model)
 {
     model.ItemsPerPage      = ItemsPerPage;
     model.PageNumber        = page;
     model.ElementsCount     = model.QuizQuestionsCount;
     model.CurrentQuestionId = question.Id;
     model.QuestionValue     = question.Value;
     model.AverageRating     = this.questionsService.GetQuestionRatingById(question.Id);
     model.Answers           = this.answersService.GetQuestionAnswersForTakesById(model.CurrentQuestionId);
     model.TakenAnswer       = this.SelectedAnswere(question.Id, takeId);
 }