Пример #1
0
        public QuizViewModel GetQuiz(Evaluation evaluation, DateTime evaluationTime)
        {
            List <QuestionQuizViewModel> questionViewModel = new List <QuestionQuizViewModel>();
            Random random = new Random();

            foreach (var question in evaluation.Questions)
            {
                Dictionary <Guid, string> dictionary      = question.Options.OrderBy(x => random.Next()).ToDictionary(x => x.Id, x => x.Option);
                OptionQuizViewModel       optionViewModel = new OptionQuizViewModel();
                optionViewModel.Options = new SelectList(dictionary, "Key", "Value");
                questionViewModel.Add(new QuestionQuizViewModel
                {
                    Id            = question.Id,
                    ImagePath     = question.ImagePath,
                    Options       = optionViewModel,
                    QuestionText  = question.QuestionText,
                    QuestionScore = question.Score
                });
            }
            return(new QuizViewModel
            {
                Id = evaluation.Id,
                Questions = questionViewModel.OrderBy(x => random.Next()).ToList(),
                QuizName = evaluation.Name,
                Score = evaluation.Questions.Sum(x => x.Score),
                EndTime = evaluationTime.AddMinutes(evaluation.MinutesDuration),
            });
        }
Пример #2
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);
        }