public QuestionVm ShowRandomlySelectedQuestion(int categoryId, string username)
        {
            var questionsIdWithGoodRespondOfthisUser = _categoryAndQuestionRepo.GetQuestionIdsWhichUserRespondCorrectly(username);
            var questions = _categoryAndQuestionRepo.GetQuestionsByCategoryId(categoryId)
                            .ProjectTo <QuestionVm>(_mapper.ConfigurationProvider).ToList();

            for (int i = 0; i < questions.Count; i++)
            {
                if (questionsIdWithGoodRespondOfthisUser.Contains(questions[i].Id))
                {
                    questions.RemoveAt(i);
                    i--;
                }
            }
            if (questions.Count == 0)
            {
                if (categoryId != -1)
                {
                    var categoryRespondedCorrectlyByUser = new CategoryWithEveryQuestionsRespondedCorrectlyByUser()
                    {
                        Username   = username,
                        CategoryId = categoryId
                    };
                    _categoryAndQuestionRepo.AddCategoryWithAllGoodRespondsByUser(categoryRespondedCorrectlyByUser);
                    int idCategory = DrawCategory(username);
                    var question1  = ShowRandomlySelectedQuestion(idCategory, username);
                    return(question1);
                }
                else
                {
                    QuestionVm questionVm1 = new QuestionVm()
                    {
                        Category = "empty"
                    };
                    return(questionVm1);
                }
            }
            Random rnd          = new Random();
            int    randomNumber = rnd.Next(0, questions.Count);
            var    question     = questions[randomNumber];

            return(question);
        }
예제 #2
0
 public void AddCategoryWithAllGoodRespondsByUser(CategoryWithEveryQuestionsRespondedCorrectlyByUser categoryRespondedCorrectlyByUser)
 {
     _context.CategoriesWithEveryQuestionsRespondedCorrectlyByUser.Add(categoryRespondedCorrectlyByUser);
     _context.SaveChanges();
 }