コード例 #1
0
        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));
        }
コード例 #2
0
 public WithdrawalPaymentTransactionDTO(WithdrawalPaymentTransaction paymentTransaction) : base(paymentTransaction)
 {
 }