public void Deposit(DepositRequest depositRequest) { BankAccount bankAccount = _bankRepository.FindBy(depositRequest.AccountId); bankAccount.Deposit(depositRequest.Amount, ""); _bankRepository.Save(bankAccount); }
public void Transfer(Guid accountNoTo, Guid accountNoFrom, decimal amount) { BankAccount bankAccountTo = _bankAccountRepository.FindBy(accountNoTo); BankAccount bankAccountFrom = _bankAccountRepository.FindBy(accountNoFrom); BankAccountHasEnoughFundsToWithdrawSpecification HasEnoughFunds = new BankAccountHasEnoughFundsToWithdrawSpecification(amount); if (HasEnoughFunds.IsSatisfiedBy(bankAccountFrom)) { bankAccountTo.Balance += amount; Transaction transDeposit = TransactionFactory.CreateDepositTransactionFrom(bankAccountTo, amount, "From Acc " + bankAccountFrom.CustomerRef + " "); bankAccountTo.Transactions.Add(transDeposit); bankAccountFrom.Balance -= amount; Transaction transWithdraw = TransactionFactory.CreateWithdrawTransactionFrom(bankAccountFrom, amount, "Transfer To Acc " + bankAccountTo.CustomerRef + " "); bankAccountFrom.Transactions.Add(transWithdraw); _bankAccountRepository.Save(bankAccountTo); _bankAccountRepository.Save(bankAccountFrom); } else { throw new InsufficientFundsException(); } }
public void Transfer(Guid accountNoTo, Guid accountNoFrom, decimal amount) { BankAccount bankAccountTo = _bankAccountRepository.FindBy(accountNoTo); BankAccount bankAccountFrom = _bankAccountRepository.FindBy(accountNoFrom); if (bankAccountFrom.CanWithdraw(amount)) { bankAccountTo.Deposit(amount, "From Acc " + bankAccountFrom.CustomerRef + " "); bankAccountFrom.Withdraw(amount, "Transfer To Acc " + bankAccountTo.CustomerRef + " "); _bankAccountRepository.Save(bankAccountTo); _bankAccountRepository.Save(bankAccountFrom); } else { throw new InsufficientFundsException(); } }
public FindBankAccountResponse GetBankAccountBy(Guid Id) { FindBankAccountResponse bankAccountResponse = new FindBankAccountResponse(); BankAccount acc = _bankRepository.FindBy(Id); BankAccountView bankAccountView = ViewMapper.CreateBankAccountViewFrom(acc); foreach (Transaction tran in acc.Transactions) { bankAccountView.Transactions.Add(ViewMapper.CreateTransactionViewFrom(tran)); } bankAccountResponse.BankAccount = bankAccountView; return(bankAccountResponse); }