public IActionResult GetCommonExpenses(string owner, string date) { var expenses = new MakeItClear.Service.Moke.AccountsService().GetMonthlyExpensesDetails().OrderBy(x => x.Date).ToList(); var commonExpnsForMonth = expenses.Where(x => x.Date.ToString(DateToMonthYearFormat) .Equals(date) && x.IsCommon); if (owner.Equals("All") == false) { commonExpnsForMonth = commonExpnsForMonth.Where(x => x.Owner.Equals(owner)); } MonthlyCommonExpensesModel monthlyCommonExpenses = new MonthlyCommonExpensesModel(); monthlyCommonExpenses.Date = date; monthlyCommonExpenses.Owner = owner; monthlyCommonExpenses.Expenses = commonExpnsForMonth.ToList(); return View(monthlyCommonExpenses); }
private void AddDatesAndExpenses(MonthlyExpenseSummary monthlyExpenseSummary) { DateTime startDate = new DateTime(DateTime.Now.Year, 1, 1); DateTime endDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); var expenses = new MakeItClear.Service.Moke.AccountsService().GetMonthlyExpensesDetails().OrderBy(x => x.Date).ToList(); while (startDate <= endDate) { var monthlyExpenseItem = new MonthlyExpenseItemModel(); monthlyExpenseItem.Date = startDate.ToString(DateToMonthYearFormat); AddIncomesForOwners(monthlyExpenseItem, monthlyExpenseSummary.AccountOwners); AddExpensesForOwners(monthlyExpenseItem, monthlyExpenseSummary.AccountOwners, expenses); CalculateCommonExpense(monthlyExpenseItem, monthlyExpenseSummary.AccountOwnersInCalc, expenses); monthlyExpenseSummary.MonthlyExpenses.Add(monthlyExpenseItem); startDate = startDate.AddMonths(1); } }
private void AddIncomesForOwners(MonthlyExpenseItemModel monthlyExpenseItem, IEnumerable<string> accountOwners) { //Optimize below service call to load only items for the selected MMM/yyyy var incomes = new MakeItClear.Service.Moke.AccountsService().GetMonthlyIncomeDetails().OrderBy(x => x.Date); foreach (var owner in accountOwners) { var expItem = new AccountingItemModel(); expItem.Owner = owner; expItem.Amount = incomes.Where(x => x.Date.ToString(DateToMonthYearFormat).Equals(monthlyExpenseItem.Date) && x.Owner.Equals(owner)).Sum(x => x.Amount); monthlyExpenseItem.Incomes.Add(expItem); } }