private string TransferAmount(BankTransaction trans) { BankAccount sourceAcct = _lib.GetBankAccountByAccountNumber(trans.SourceAccountNumber); BankAccount targetAcct = _lib.GetBankAccountByAccountNumber(trans.TargetAccountNumber); if (sourceAcct != null && targetAcct != null && trans.TransactionAmount < 0) { return("Transaction Amount cannot be negative or less than zero"); } else if (sourceAcct != null && targetAcct != null && sourceAcct.Balance > trans.TransactionAmount) { //sourceAcct.Balance = sourceAcct.Balance - trans.TransactionAmount; //targetAcct.Balance = targetAcct.Balance + trans.TransactionAmount; _lib.UpdateBankAccount(sourceAcct, targetAcct, trans.TransactionType, trans.TransactionAmount); } else if (sourceAcct != null && targetAcct != null && sourceAcct.Balance < trans.TransactionAmount) { return("Transaction Amount must be less than Balance Amount."); } else if (sourceAcct != null && targetAcct == null) { return("Target Account Number does not exist."); } else if (sourceAcct == null && targetAcct != null) { return("Source Account Number does not exists."); } return("Bank Transaction Successfull"); }
public string ProcessBankTransaction(BankTransaction trans) { string result = ""; switch (trans.TransactionType) { case "Deposit": result = DepositAmount(trans); break; case "Withdraw": result = WithrawAmount(trans); break; case "Transfer": result = TransferAmount(trans); break; default: break; } return(result); }
private string WithrawAmount(BankTransaction trans) { BankAccount acct = _lib.GetBankAccountByAccountNumber(trans.SourceAccountNumber); if (acct != null && acct.Balance > trans.TransactionAmount) { if (trans.TransactionAmount > 0) { acct.Balance = acct.Balance - trans.TransactionAmount; _lib.UpdateBankAccount(acct, trans.TransactionType, trans.TransactionAmount); return("Bank Transaction Successfull"); } else { return("Transaction Amount cannot be negative or less than zero"); } } else { return("Account Number does not exists!"); } }