public List <RevenueStatistic> GetRevenuesStatistic(long userId) { var revenues = _dbContext.GetRevenues(userId); List <RevenueStatistic> revenueStatistics = new List <RevenueStatistic>(); foreach (var category in revenues.Select(r => r.Category).Distinct()) { var categoryAmount = revenues.Where(r => r.Category == category).Select(r => r.Amount).Sum(); var percent = Math.Round(categoryAmount * 100 / revenues.Select(r => r.Amount).Sum(), 1); revenueStatistics.Add(new RevenueStatistic(category.Name, categoryAmount, percent)); } return(revenueStatistics.OrderByDescending(r => r.TotalAmount).ToList()); }