public async Task <Result <CreditCardCaptureResult> > Capture(CreditCardCaptureMoneyRequest request, CreditCardPaymentInfo paymentInfo, string maskedNumber, Currencies currency, UserInfo user, int agentId) { return(await CaptureInPayfort() .Tap(WriteAuditLog)); Task <Result <CreditCardCaptureResult> > CaptureInPayfort() => _payfortService.Capture(request); Task WriteAuditLog(CreditCardCaptureResult captureResult) { var eventData = new CreditCardLogEventData($"Capture money for the payment '{request.MerchantReference}'", captureResult.ExternalCode, captureResult.Message, paymentInfo.InternalReferenceCode); return(_creditCardAuditService.Write(CreditCardEventType.Capture, maskedNumber, request.Amount, user, eventData, request.MerchantReference, agentId, currency)); } }
public async Task <Result <CreditCardVoidResult> > Void(CreditCardVoidMoneyRequest request, CreditCardPaymentInfo paymentInfo, string maskedNumber, MoneyAmount moneyAmount, string referenceCode, UserInfo user, int agentId) { return(await VoidInPayfort() .Tap(WriteAuditLog)); Task <Result <CreditCardVoidResult> > VoidInPayfort() => _payfortService.Void(request); Task WriteAuditLog(CreditCardVoidResult voidResult) { var eventData = new CreditCardLogEventData($"Void money for the payment '{referenceCode}'", voidResult.ExternalCode, voidResult.Message, paymentInfo.InternalReferenceCode); return(_creditCardAuditService.Write(CreditCardEventType.Void, maskedNumber, moneyAmount.Amount, user, eventData, referenceCode, agentId, moneyAmount.Currency)); } }
private async Task WriteAuthorizeAuditLog(CreditCardPaymentResult payment, int agentId, Currencies currency) { // No need to log secure 3d request, audit log will be written when when secure 3d passes and actual authorization occurs if (payment.Status == CreditCardPaymentStatuses.Secure3d) { return; } var eventData = new CreditCardLogEventData($"Authorize money for the payment '{payment.ReferenceCode}'", payment.ExternalCode, payment.Message, payment.MerchantReference); await _creditCardAuditService.Write(CreditCardEventType.Authorize, payment.CardNumber, payment.Amount, new UserInfo(agentId, UserTypes.Agent), eventData, payment.ReferenceCode, agentId, currency); }