public int NumMonthsUnderBudgetByCat(List <int> months, string user, int budgetType) { var budgetRepo = new BudgetRepository(_context); int numMonthsUnderBudget = 0; foreach (var month in months) { if (budgetRepo.GetBudgetLimitByLimitType(budgetType, month, user) - TotalSpentByBudgetCategory(month, user, budgetType) > 0) { numMonthsUnderBudget += 1; } } return(numMonthsUnderBudget); }
public float AvgOverUnderByCat(List <int> months, string user, int budgetType) { var monthListForUser = GetBudgetMonthNumbersList(user); if (!monthListForUser.Any()) { return(0.00f); } float totalBudgetByCat = 0; float totalSpent = 0; var budgetRepo = new BudgetRepository(_context); foreach (var month in monthListForUser) { totalBudgetByCat += budgetRepo.GetBudgetLimitByLimitType(budgetType, month, user); totalSpent += TotalSpentByBudgetCategory(month, user, budgetType); } return(totalBudgetByCat - totalSpent); }
public Dictionary <string, float> HighestSavings(string user) { var category = 0; var mostSaved = 0.0f; var categoryStr = ""; var budgetRepo = new BudgetRepository(_context); for (var month = 1; month < 13; month++) { for (var budgetType = 1; budgetType < 7; budgetType++) { var limit = budgetRepo.GetBudgetLimitByLimitType(budgetType, month, user); var spent = TotalSpentByBudgetCategory(month, user, budgetType); var difference = limit - spent; if (difference > mostSaved) { category = budgetType; mostSaved = difference; } } } var categoryUnderBudget = new Dictionary <string, float>(); switch (category) { case 1: categoryStr = "Grocery | Restaurant"; break; case 2: categoryStr = "Mortgage | Rent"; break; case 3: categoryStr = "Bills | Payments"; break; case 4: categoryStr = "Entertainment"; break; case 5: categoryStr = "Gas | Auto"; break; case 6: categoryStr = "Miscellaneous"; break; } if (mostSaved > 0) { categoryUnderBudget.Add(categoryStr, mostSaved); } else { categoryUnderBudget.Add("No Information", 0); } return(categoryUnderBudget); }