public IActionResult OverdraftAccountDebit(ViewOverdraftAccountViewModel vm)
        {
            var bank    = Utility.Utility.GetBankData(_env.WebRootPath);
            var account = bank.OverdraftAccounts.Single(oa => oa.AccountID == vm.AccountID);
            var result  = account.Debit(vm.DebitAmount);

            Utility.Utility.SaveBankData(_env.WebRootPath, bank);
            return(RedirectToAction("ViewOverdraftAccount", "Account", new { id = account.AccountID, message = result }));
        }
        public IActionResult OverdraftAccountCredit(ViewOverdraftAccountViewModel vm)
        {
            //pull acc from file, perform operation, then redirect to page with result!
            var bank    = Utility.Utility.GetBankData(_env.WebRootPath);
            var account = bank.OverdraftAccounts.Single(oa => oa.AccountID == vm.AccountID);
            var result  = account.Credit(vm.CreditAmount);

            //now save to file
            Utility.Utility.SaveBankData(_env.WebRootPath, bank);
            return(RedirectToAction("ViewOverdraftAccount", "Account", new { id = account.AccountID, message = result }));
        }
        public IActionResult ViewBusinessAccount(Guid id, Message?message)
        {
            //get account from file. populate view model
            var bank    = Utility.Utility.GetBankData(_env.WebRootPath);
            var account = bank.BusinessAccounts.Single(ba => ba.AccountID == id);
            var vm      = new ViewOverdraftAccountViewModel()
            {
                AccountID         = account.AccountID,
                InterestRate      = account.InterestRate,
                Balance           = account.Balance,
                OverdraftLimit    = account.OverdraftLimit,
                OverdraftInterest = account.OverdraftInterest
            };

            if (message != null)
            {
                vm.Message = (Message)message;
            }
            return(View(vm));
        }