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); }
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); }
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); }