public OtherStatsVm GetOtherStats() { int counter = 1; int numberOfUsersWhoAnswerToAllQuestion = 0; List <string> usersWhoAnswerToAllQuestion = new List <string>(); var numberOfCategories = _statsRepo.GetAmountOfCategories(); var usersAndCategories = _statsRepo.GetUsersWhichAnsweredOnEveryQuestion(). OrderBy(u => u.Username).ToList(); for (int i = 1; i < usersAndCategories.Count(); i++) { if (usersAndCategories[i].Username == usersAndCategories[i - 1].Username) { counter++; } else { if (counter == numberOfCategories) { numberOfUsersWhoAnswerToAllQuestion++; usersWhoAnswerToAllQuestion.Add(usersAndCategories[i - 1].Username); } counter = 1; } } if (counter == numberOfCategories) { numberOfUsersWhoAnswerToAllQuestion++; usersWhoAnswerToAllQuestion.Add(usersAndCategories[usersAndCategories.Count() - 1].Username); } var data = _statsRepo.GetDataFromQuestionsWithCorrectlyRespondsTable().OrderBy(u => u.QuestionId).ToList(); int counter2 = 1; int maxCounter2 = 1; int minCounter2 = int.MaxValue; int questionIdOnWhichTheMostUsersAnsweredGood = 0; string questionOnWhichTheMostUsersAnsweredGood = ""; int questionIdOnWhichTheLeastUsersAnsweredGood = 0; string questionOnWhichTheLeastUsersAnsweredGood = ""; for (int i = 1; i < data.Count(); i++) { if (data[i].QuestionId == data[i - 1].QuestionId) { counter2++; } else { counter2 = 1; } if (maxCounter2 < counter2) { maxCounter2 = counter2; questionIdOnWhichTheMostUsersAnsweredGood = data[i].QuestionId; } if (minCounter2 > counter2) { minCounter2 = counter; questionIdOnWhichTheLeastUsersAnsweredGood = data[i].QuestionId; } } questionOnWhichTheMostUsersAnsweredGood = _catQueAnsRepo.ReturnDetailsOfQuestion(questionIdOnWhichTheMostUsersAnsweredGood) .QuestionText; questionOnWhichTheLeastUsersAnsweredGood = _catQueAnsRepo.ReturnDetailsOfQuestion(questionIdOnWhichTheLeastUsersAnsweredGood) .QuestionText; OtherStatsVm otherStatsVm = new OtherStatsVm() { NumberOfUsersWhoAnsweredToAllQuestions = numberOfUsersWhoAnswerToAllQuestion, UsersWhoAnsweredToAllQuestions = usersWhoAnswerToAllQuestion, QuestionOnWhichTheMostUsersAnsweredGood = questionOnWhichTheMostUsersAnsweredGood, QuestionOnWhichTheLeastUsersAnsweredGood = questionOnWhichTheLeastUsersAnsweredGood }; return(otherStatsVm); }