Beispiel #1
0
        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
            }));
        }