public async Task <object> FindAll(int year, int month) { var categories = await _categoriesRepository.FindAll(); var mutations = await _mutationsRepository.FindByYearAndMonth(year, month); var results = new List <object>(); foreach (var category in categories) { double totalSpend = 0; foreach (var mutation in mutations.Where(mutation => mutation.CategoryId == category.Id)) { totalSpend += mutation.Amount; } results.Add(new { name = category.Name, amount = totalSpend, max = category.Max }); } return(results); }
public async Task <object> FindByYearAndMonth(int year, int month) { var categories = await _categoriesRepository.FindAll(); var results = await _mutationsRepository.FindByYearAndMonth(year, month); return(results.Select(mutation => new { id = mutation.Id, amount = mutation.Amount, category = new { id = mutation.CategoryId, name = categories.First(category => category.Id == mutation.CategoryId).Name }, description = mutation.Description, year = mutation.Year, month = mutation.Month })); }