public async Task <WithdrawalPaymentTransactionDTO> MakeWithdrawalPaymentTransaction(string uniqueMasterCitizenNumberValue, string password, decimal amount) { Wallet wallet = await CheckForWallet(uniqueMasterCitizenNumberValue, password); IBankAPI bankAPI = _bankAPIDeterminator.DeterminateBankAPI(wallet.SupportedBank); WithdrawalPaymentTransaction withdrawalPaymentTransaction = wallet.MakeWithdrawalTransaction(amount); bool successDeposit = await bankAPI.Deposit(uniqueMasterCitizenNumberValue, wallet.PostalIndexNumber, amount); if (!successDeposit) { throw new BankAPIException("Bank api - failed to deposit"); } await _unitOfWork.PaymentTransactionRepository.Insert(withdrawalPaymentTransaction); await _unitOfWork.SaveChangesAsync(); return(new WithdrawalPaymentTransactionDTO(withdrawalPaymentTransaction)); }
public WithdrawalPaymentTransactionDTO(WithdrawalPaymentTransaction paymentTransaction) : base(paymentTransaction) { }