public Budget GetCheckAndCreateBudget(Budgeteer budgeteer) { if (!(_repo.Budgets.FindByCondition(b => b.BudgeteerId == budgeteer.BudgeteerId).Any())) { var newBudget = new Budget { BudgetStartDate = DateTime.Today, MonthId = DateTime.Now.Month, Year = DateTime.Now.Year, BudgeteerId = budgeteer.BudgeteerId }; _repo.Budgets.Create(newBudget); _repo.Save(); } //Grab their current budget to pass to View var budget = _repo.Budgets.GetBudgetByBudgeteerIdMonthAndYear(budgeteer.BudgeteerId, DateTime.Now.Month, DateTime.Now.Year); if (budget == null)//If budget is null, that means there is a budget in the database, but its not current, need to make a new one { //grabs the last months budget so that important details can be transferred over and saved money can be calculated var lastMonthBudget = _repo.Budgets.GetBudgetByBudgeteerIdMonthAndYear(budgeteer.BudgeteerId, DateTime.Now.Month - 1, DateTime.Now.Year); CalculateMoneySaved(lastMonthBudget, budgeteer); budget = new Budget { MonthlyIncome = lastMonthBudget.MonthlyIncome, MonthlyLimit = lastMonthBudget.MonthlyLimit, RandomExpenseLimit = lastMonthBudget.RandomExpenseLimit, MonthlyBillMoney = 0, MonthlyBudgetItemMoney = 0, MonthlyDebtItemMoney = 0, MonthlyGoalItemMoney = 0, MonthlyMoneySaved = 0, MonthlyRandomExpenseMoney = 0, MonthlyTotalMoney = 0, CoffeeCategorySpent = 0, DiningOutCategorySpent = 0, EntertainmentCategorySpent = 0, GasCategorySpent = 0, GroceriesCategorySpent = 0, CoffeeCategoryLimit = lastMonthBudget.CoffeeCategoryLimit, DiningOutCategoryLimit = lastMonthBudget.DiningOutCategoryLimit, EntertainmentCategoryLimit = lastMonthBudget.EntertainmentCategoryLimit, GasCategoryLimit = lastMonthBudget.GasCategoryLimit, GroceriesCategoryLimit = lastMonthBudget.GroceriesCategoryLimit, BudgetStartDate = DateTime.Today, MonthId = DateTime.Now.Month, Year = DateTime.Now.Year, BudgeteerId = budgeteer.BudgeteerId }; _repo.Budgets.Create(budget); _repo.Save(); } return(budget); }
public void CalculateMoneySaved(Budget budget, Budgeteer budgeteer) { var moneySaved = budget.MonthlyIncome - budget.MonthlyTotalMoney; var moneyUnderBudget = budget.MonthlyLimit - budget.MonthlyTotalMoney; var wallet = _repo.Wallets.GetWallet(budgeteer.WalletId); if (moneySaved > 0) { wallet.TotalMoneySaved = moneySaved; } if (moneyUnderBudget > 0) { wallet.ExtraCash = moneyUnderBudget; } _repo.Wallets.Update(wallet); _repo.Save(); }
public async Task SendSMS(Budgeteer budgeteer, List <string> upcomingBills) { string messageBody = ""; foreach (var bill in upcomingBills) { messageBody += $"-{bill + "\n"}"; } TwilioClient.Init(Account_SID, AUTH_TOKEN); var message = await MessageResource.CreateAsync( body : messageBody, from : new Twilio.Types.PhoneNumber(TwilioPhoneNumber), to : new Twilio.Types.PhoneNumber($"1{budgeteer.PhoneNumber}") ); }
public ActionResult EditBudgeteer(int id, Budgeteer budgeteer) { try { var budgeteerFromDb = _repo.Budgeteers.GetBudgeteer(id); budgeteerFromDb.FirstName = budgeteer.FirstName; budgeteerFromDb.LastName = budgeteer.LastName; budgeteerFromDb.Email = budgeteer.Email; budgeteerFromDb.PhoneNumber = budgeteer.PhoneNumber; _repo.Budgeteers.Update(budgeteerFromDb); _repo.Save(); return(RedirectToAction(nameof(Index))); } catch { return(View(budgeteer)); } }
public ActionResult CreateBudgeteer(Budgeteer budgeteer) { try { var wallet = new Wallet(); _repo.Wallets.Create(wallet); _repo.Save(); var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); budgeteer.UserId = userId; budgeteer.WalletId = _repo.Wallets.GetWallet(wallet.WalletId).WalletId; _repo.Budgeteers.Create(budgeteer); _repo.Save(); return(RedirectToAction(nameof(Index))); } catch { return(View(budgeteer)); } }