public CategoryStatistics CategoryStatistics(int categoryId)
{
this.categoryId = categoryId;
var category = context.Categories.Where(x => x.CategoryId == categoryId);
if (category.Count() == 0)
{
throw new ArgumentException("Category does not exist");
}
var userStatistics = GetUserStatisticForCategory();
var catStatistics = new CategoryStatistics();
catStatistics.Category = category.FirstOrDefault();
catStatistics.Top5Winners = userStatistics.OrderByDescending(x => x.Wins).Take(5).ToList();
catStatistics.Top5Loosers = userStatistics.OrderByDescending(x => x.Losses).Take(5).ToList();
catStatistics.NumberOfEventsInCategory = NumberOfEventsInCategory();
catStatistics.NumberOfRaffleParticipantsInCategory = NumberOfRaffleParticipantsInCategory();
catStatistics.NumberOfEventTicketsHandedOut = NumberOfEventTicketsHandedOut();
catStatistics.UniqueNumberOfRaffleParticipantsInCategory = UniqueNumberOfRaffleParticipantsInCategory();
catStatistics.NumberOfEventTicketsNotHandedOut = NumberOfEventTicketsNotHandedOut();
catStatistics.NumberOfTimesEventCreatorHasWonHisOwnRaffle = NumberOfTimesEventCreatorHasWonHisOwnRaffle();
return catStatistics;
}