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); }
public void AddCategoryWithAllGoodRespondsByUser(CategoryWithEveryQuestionsRespondedCorrectlyByUser categoryRespondedCorrectlyByUser) { _context.CategoriesWithEveryQuestionsRespondedCorrectlyByUser.Add(categoryRespondedCorrectlyByUser); _context.SaveChanges(); }