public IEnumerable <TraceableBalance> GetMonthlyBalances() //Gets list of every year-month balances { List <TraceableIncome> tIncomes = (List <TraceableIncome>)IncomeController.Instance().GetMonthlyIncomes(); List <TraceableExpense> tExpenses = (List <TraceableExpense>)ExpenseController.Instance().GetMonthlyExpenses(); List <TraceableBalance> tBalances = new List <TraceableBalance>(); for (int i = 0; i < tIncomes.Count; i++) { if (tIncomes[i].DateID == tExpenses[i].DateID) { TraceableBalance tBalance = new TraceableBalance() { Amount = tIncomes[i].Amount - tExpenses[i].Amount, Year = tIncomes[i].Year, Month = tIncomes[i].Month, DateID = tIncomes[i].DateID }; tBalances.Add(tBalance); } else { throw new Exception("Balances cannot be calculated because of missing income or expense data, or errors in parsing data"); } } return(tBalances); }
private static ExpenseController _instance = null; //Singleton pattern public static ExpenseController Instance() //Lazy Load initiation { if (_instance == null) { _instance = new ExpenseController(); } return(_instance); }
public IEnumerable <Balance> ChartRepresenation() { IEnumerable <ExpenseDB> _expenses = ExpenseController.Instance().ParseExpenses(); IEnumerable <IncomeDB> _incomes = IncomeController.Instance().ParseIncomes(); var expenses = from expense in _expenses orderby expense.expenseDate ascending group expense.expenseAmount by new { Year = expense.expenseDate.Year, Month = expense.expenseDate.Month // LINQ using } into g select new Result { monthAndYear = g.Key.Year + "-" + g.Key.Month, Year = g.Key.Year, Month = g.Key.Month, amount = g.Sum(), Type = "Expense" }; var incomes = from income in _incomes orderby income.incomeDate ascending group income.incomeAmount by new { Year = income.incomeDate.Year, Month = income.incomeDate.Month } into g select new Result { monthAndYear = g.Key.Year + "-" + g.Key.Month, Year = g.Key.Year, Month = g.Key.Month, amount = g.Sum(), Type = "Income" }; var _join = incomes.Concat(expenses); var results = from p in _join orderby p.monthAndYear ascending select new Result { monthAndYear = p.monthAndYear, Year = p.Year, Month = p.Month, amount = p.amount, Type = p.Type }; var _get = from h in CalculateEqual(results).ToList() orderby h.Year, h.Month ascending select h; return(_get.ToList()); }
public IEnumerable <Balance> ChartRepresenationForOneUser(String username, String password) { IEnumerable <ExpenseDB> _expenses = ExpenseController.Instance().ParseOneUserExpenses(username, password); IEnumerable <IncomeDB> _incomes = IncomeController.Instance().parseOneUserIncomes(username, password); var expenses = from expense in _expenses orderby expense.expenseDate ascending group expense.expenseAmount by new { Year = expense.expenseDate.Year, Month = expense.expenseDate.Month // LINQ using } into g select new Result { monthAndYear = g.Key.Year + "-" + g.Key.Month, Year = g.Key.Year, Month = g.Key.Month, amount = g.Sum(), Type = "Expense" }; var incomes = from income in _incomes orderby income.incomeDate ascending group income.incomeAmount by new { Year = income.incomeDate.Year, Month = income.incomeDate.Month } into g select new Result { monthAndYear = g.Key.Year + "-" + g.Key.Month, Year = g.Key.Year, Month = g.Key.Month, amount = g.Sum(), Type = "Income" }; var o = incomes.Concat(expenses); var results = from p in o orderby p.monthAndYear ascending select new Result { monthAndYear = p.monthAndYear, Year = p.Year, Month = p.Month, amount = p.amount, Type = p.Type }; var gautas = from h in CalculateEqualForOneUser(results, username, password).ToList() orderby h.Year, h.Month ascending select h; return(gautas.ToList()); }
public decimal GetOneUserMonthlyBalance(String username, String password) { return(IncomeController.Instance().OneUserMonthlyIncome(username, password) - ExpenseController.Instance().OneUserMonthlyExpenses(username, password)); }
public decimal GetMonthlyBalance() { return(IncomeController.Instance().MonthlyIncome() - ExpenseController.Instance().MonthlyExpenses()); }
public decimal GetMonthlyExpenses() { return(ExpenseController.Instance().MonthlyExpenses()); }