public async Task <PreviousExpenses> ShowPreviousExpenses(int walletId, DateTime d) { DateTime[] date = GetDate(d); var currentMonth = date[0]; var endOfCurrentMonth = date[1]; //var currentMonth = new DateTime(date.Year, date.Month, 1); //var endOfCurrentMonth = currentMonth.AddMonths(1).AddMilliseconds(-1); var categories = await _walletRepo.GetCategories(walletId); PreviousExpenses previousExpenses = new PreviousExpenses(); List <ExpensesWithCategoryData> expenses = new List <ExpensesWithCategoryData>(); foreach (var category in categories) { ExpensesWithCategoryData expGroup = new ExpensesWithCategoryData(); expGroup.CategoryId = category.Id; expGroup.CategoryName = category.Title; var catExpenses = await(from e in _context.Expenses join u in _context.Users on e.ExpenseUserId equals u.Id where e.ExpenseCategoryId == category.Id where e.FamilyWalletId == walletId where e.CreationDate >= currentMonth && e.CreationDate <= endOfCurrentMonth select new ExpenseDTO { Id = e.Id, UserName = u.UserName, ExpenseTitle = e.ExpenseTitle, ExpenseDescription = e.ExpenseDescription, CreationDate = e.CreationDate, MoneySpent = e.MoneySpent, }).Take(10).ToListAsync(); if (catExpenses.Count == 0) { expGroup.Expenses = new List <ExpenseDTO>(); } else { expGroup.Expenses = catExpenses; } expenses.Add(expGroup); } previousExpenses.PreviousMonthExpenses = expenses; previousExpenses.TopFiveUsers = await GetTopMembers(walletId, currentMonth, endOfCurrentMonth); previousExpenses.PreviousExpensesBars = await CreateBarExpensesData(walletId, d); return(previousExpenses); }
public async Task <List <ExpensesWithCategoryData> > ShowExpenses(int walletId) { var today = DateTime.Today; var currentMonth = new DateTime(today.Year, today.Month, 1); var endOfCurrentMonth = currentMonth.AddMonths(1).AddMilliseconds(-1); List <ExpensesWithCategoryData> expenses = new List <ExpensesWithCategoryData>(); var categories = await _walletRepo.GetCategories(walletId); foreach (var category in categories) { ExpensesWithCategoryData expGroup = new ExpensesWithCategoryData(); expGroup.CategoryId = category.Id; expGroup.CategoryName = category.Title; var catExpenses = await(from e in _context.Expenses join u in _context.Users on e.ExpenseUserId equals u.Id where e.ExpenseCategoryId == category.Id where e.FamilyWalletId == walletId where e.CreationDate >= currentMonth && e.CreationDate <= endOfCurrentMonth select new ExpenseDTO { Id = e.Id, UserName = u.UserName, ExpenseTitle = e.ExpenseTitle, ExpenseDescription = e.ExpenseDescription, CreationDate = e.CreationDate, MoneySpent = e.MoneySpent, }).Take(10).ToListAsync(); if (catExpenses.Count == 0) { expGroup.Expenses = new List <ExpenseDTO>(); } else { expGroup.Expenses = catExpenses; } expenses.Add(expGroup); } return(expenses); }