public void Execute(Account account) { decimal amount = GetWithdrawalAmount(); var ops = new AccountOperations(); var request = new WithDrawalRequest() { Account = account, WithdrawalAmount = amount }; var response = ops.MakeWithDrawal(request); if (response.Success) { Console.Clear(); Console.WriteLine("Withdrawn from account {0}, New Balance: {1:C}", response.Data.AccountNumber, response.Data.Balance); UserInteractions.PressKeyToContinue(); } else { Console.Clear(); Console.WriteLine("An Error Occured: {0}", response.Message); UserInteractions.PressKeyToContinue(); } }
public void CanWithdrawMoney() { var ops = new AccountOperations(); var loadAccountResponse = ops.GetAccount("2"); var request = new WithDrawalRequest(); request.Account = loadAccountResponse.Data; request.WithdrawalAmount = 100.00M; var withdrawalRequest = ops.MakeWithDrawal(request); var reloadAccount = ops.GetAccount("2"); Assert.AreEqual("2", reloadAccount.Data.AccountNumber); Assert.AreEqual("Bob", reloadAccount.Data.FirstName); Assert.AreEqual(23.00M, reloadAccount.Data.Balance); }
public void Execute(Account account) { // get transfer amount decimal transferAmount = GetTransferAmount(account); var ops = new AccountOperations(); //withdraw transfer amount from that account var fromAccountRequest = new WithDrawalRequest() { Account = account, WithdrawalAmount = transferAmount }; var fromAccountResponse = ops.MakeWithDrawal(fromAccountRequest); string getTransferAccount = GetTransferAccount(); //trying to assign the transferTo account as the account in the deposit request. //have to change string toAccount to Account var getAccountResponse = ops.GetAccount(getTransferAccount); var toAccount = getAccountResponse.Data; var toAccountRequest = new DepositRequest() { Account = toAccount, DepositAmount = transferAmount }; var toAccountResponse = ops.MakeDeposit(toAccountRequest); if (getAccountResponse.Success) { Console.Clear(); Console.WriteLine("Transfered from account {0}, New Balance: {1:C}", fromAccountResponse.Data.AccountNumber, toAccountResponse.Data.Balance); UserInteractions.PressKeyToContinue(); } else { Console.Clear(); Console.WriteLine("An Error Occured: {0}", fromAccountResponse.Message); UserInteractions.PressKeyToContinue(); } }
public Response<Account> MakeWithDrawal(WithDrawalRequest request) { var response = new Response<Account>(); var accountToUpdate = request.Account; try { if (request.Account.Balance < request.WithdrawalAmount) { response.Success = false; response.Message = "You do not have adequate funds in your account."; } else { accountToUpdate.Balance -= request.WithdrawalAmount; var repo = new AccountRepository(); repo.UpdateAccount(accountToUpdate); response.Success = true; response.Data = accountToUpdate; } } catch (Exception ex) { response.Success = false; response.Message = ex.Message; } return response; }