Пример #1
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);
 }
Пример #2
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);
        }
Пример #3
0
        public QuizViewModel ReviewQuiz(Evaluation evaluation, string userId, bool isUserRequired = false)
        {
            EvaluationUser evaluationUser = evaluation.EvaluationUsers.Where(x => x.UserId == userId).FirstOrDefault();
            List <QuestionQuizViewModel> quizQuestions = new List <QuestionQuizViewModel>();

            foreach (var question in evaluation.Questions)
            {
                Dictionary <Guid, string> dictionary      = question.Options.ToDictionary(x => x.Id, x => x.Option);
                OptionQuizViewModel       optionViewModel = new OptionQuizViewModel
                {
                    CorrectAnswer  = question.Options.Where(x => x.IsCorrectOption == true).Select(y => y.Id).FirstOrDefault(),
                    SelectedAnswer = evaluationUser.Answers.Where(x => question.Options.Select(y => y.Id).Contains(x.QuestionOptionId)).Select(z => z.QuestionOptionId).FirstOrDefault(),
                    Options        = new SelectList(dictionary, "Key", "Value")
                };

                QuestionQuizViewModel quizQuestion = new QuestionQuizViewModel
                {
                    ImagePath     = question.ImagePath,
                    QuestionScore = question.Score,
                    QuestionText  = question.QuestionText,
                    Options       = optionViewModel
                };
                quizQuestions.Add(quizQuestion);
            }
            QuizViewModel quizViewModel = new QuizViewModel
            {
                Id        = evaluation.Id,
                QuizName  = evaluation.Name,
                Score     = evaluation.Questions.Sum(x => x.Score),
                GotScore  = evaluationUser.Calification,
                Questions = quizQuestions,
                User      = (isUserRequired) ? evaluationUser.User : null,
            };

            return(quizViewModel);
        }