Beispiel #1
0
        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);
        }
Beispiel #2
0
        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}")
                );
        }
Beispiel #4
0
 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));
     }
 }
Beispiel #5
0
        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));
            }
        }