Пример #1
0
        private async Task <List <QuestionViewModel> > GetQuestionsForIndividualQuizAsync(string userId, int quizId, ICollection <Question> questionsEntity)
        {
            // get the already answered questions for this quiz
            var answeredQuizQuestions = await TriviaService.GetAnsweredQuizQuestionsAsync(userId, quizId);

            // get the list of all possible questions for this quiz
            //var quizQuestions = await TriviaService.GetQuizQuestionsAsync(quizId);
            var questionListViewModel = Mapper.Map <ICollection <Question>, List <QuestionViewModel> >(questionsEntity);

            // match up the already selected answers with the questions for this quiz
            foreach (var questionViewModel in questionListViewModel)
            {
                var answeredQuizQuestion = answeredQuizQuestions[questionViewModel.QuestionId];
                questionViewModel.SelectedAnswerId  = answeredQuizQuestion.AnswerId;
                questionViewModel.IsAlreadyAnswered = true;

                // mark the correct answer to show the user on the UI that it was correct
                foreach (var answer in questionViewModel.Answers)
                {
                    answer.IsCorrect = (answer.AnswerId == questionViewModel.CorrectAnswerId);
                }
            }

            return(questionListViewModel);
        }