public async Task <DoPaymentResponse> DoPaymentAsync(DoPaymentRequest request) { DoPaymentResponse response = new DoPaymentResponse(); using (var unitOfWork = unitOfWorkFactory.Create()) { unitOfWork.Begin(); BankBin bankBin = await bankDomainService.GetValidBankBinByCardNumberAsync(unitOfWork, request.CardNumber); BankProvider bankProvider = await bankDomainService.GetValidBankProviderByBankIdAsync(unitOfWork, bankBin.BankId); Provider provider = await providerDomainService.GetValidProviderByIdAsync(unitOfWork, bankProvider.ProviderId); PaymentProvider paymentProvider = providerDomainService.GetValidPaymentProviderByType(provider.ProviderType); PaymentRequest paymentRequest = classMapper.Map <DoPaymentRequest, PaymentRequest>(request); paymentRequest.SetConfiguration(bankProvider.Configuration); paymentProvider.DoPaymentAsync(paymentRequest); unitOfWork.Commit(); } return(response); }
public async Task DoPayment() { DoPaymentResponse response = await paymentService.DoPaymentAsync(new DoPaymentRequest { CardHolderName = "Tufan DAYI", CardNumber = "4183427105342132", Cvc = "123", ExpireMonth = "12", ExpireYear = "2020", Installment = 1 }); Assert.True(response.IsSuccess); }