Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 17 additions & 15 deletions src/VirtoCommerce.OrdersModule.Data/Services/PaymentFlowService.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Threading.Tasks;
using FluentValidation;
Expand All @@ -27,11 +26,11 @@ public class PaymentFlowService : IPaymentFlowService
private readonly IValidator<OrderPaymentInfo> _validator;
private readonly ITenantUniqueNumberGenerator _uniqueNumberGenerator;

protected virtual string[] CaptureRuleSets => new[] { PaymentRequestValidator.DefaultRuleSet, PaymentRequestValidator.CaptureRuleSet };
protected virtual string[] RefundRuleSets => new[] { PaymentRequestValidator.DefaultRuleSet, PaymentRequestValidator.RefundRuleSet };
protected virtual string[] CaptureRuleSets => [PaymentRequestValidator.DefaultRuleSet, PaymentRequestValidator.CaptureRuleSet];
protected virtual string[] RefundRuleSets => [PaymentRequestValidator.DefaultRuleSet, PaymentRequestValidator.RefundRuleSet];

protected virtual PaymentStatus[] CaptureAllowedPaymentStatuses => new[] { PaymentStatus.Authorized, PaymentStatus.Paid };
protected virtual PaymentStatus[] RefundAllowedPaymentStatuses => new[] { PaymentStatus.Paid, PaymentStatus.PartiallyRefunded, PaymentStatus.Refunded };
protected virtual PaymentStatus[] CaptureAllowedPaymentStatuses => [PaymentStatus.Authorized, PaymentStatus.Paid];
protected virtual PaymentStatus[] RefundAllowedPaymentStatuses => [PaymentStatus.Paid, PaymentStatus.PartiallyRefunded, PaymentStatus.Refunded];

public PaymentFlowService(
ICustomerOrderService customerOrderService,
Expand Down Expand Up @@ -110,7 +109,7 @@ protected virtual async Task<RefundOrderPaymentResult> CreateRefundDocument(Refu
}


await _customerOrderService.SaveChangesAsync(new[] { paymentInfo.CustomerOrder });
await _customerOrderService.SaveChangesAsync([paymentInfo.CustomerOrder]);

result.Succeeded = true;

Expand Down Expand Up @@ -145,7 +144,7 @@ protected virtual async Task<RefundOrderPaymentResult> SaveResultToRefundDocumen
result.ErrorMessage = refundResult.ErrorMessage;
}

await _customerOrderService.SaveChangesAsync(new[] { paymentInfo.CustomerOrder });
await _customerOrderService.SaveChangesAsync([paymentInfo.CustomerOrder]);

return result;
}
Expand Down Expand Up @@ -186,7 +185,7 @@ public virtual async Task<CaptureOrderPaymentResult> CreateCaptureDocument(Captu
paymentInfo.Payment.Captures.Add(capture);
}

await _customerOrderService.SaveChangesAsync(new[] { paymentInfo.CustomerOrder });
await _customerOrderService.SaveChangesAsync([paymentInfo.CustomerOrder]);

result.Succeeded = true;

Expand Down Expand Up @@ -223,7 +222,7 @@ public virtual async Task<CaptureOrderPaymentResult> SaveResultToCaptureDocument
result.ErrorMessage = captureResult.ErrorMessage;
}

await _customerOrderService.SaveChangesAsync(new[] { paymentInfo.CustomerOrder });
await _customerOrderService.SaveChangesAsync([paymentInfo.CustomerOrder]);

return result;
}
Expand Down Expand Up @@ -292,13 +291,12 @@ protected virtual CapturePaymentRequest GetCapturePaymentRequest(OrderPaymentInf
result.CaptureAmount = request.Amount ?? paymentInfo.Payment.Sum;
result.OuterId = request.OuterId;

var parameters = new NameValueCollection
{
{ nameof(request.CloseTransaction), request.CloseTransaction.ToString() },
{ nameof(request.CaptureDetails), request.CaptureDetails ?? string.Empty }
};
result.Parameters ??= [];

result.Parameters.Add(nameof(request.CloseTransaction), request.CloseTransaction.ToString());
result.Parameters.Add(nameof(request.CaptureDetails), request.CaptureDetails ?? string.Empty);
result.Parameters.Add(nameof(request.TransactionId), request.TransactionId ?? string.Empty);

result.Parameters = parameters;

return result;
}
Expand All @@ -314,6 +312,10 @@ protected virtual RefundPaymentRequest GetRefundPaymentRequest(OrderPaymentInfo
result.Notes = request.ReasonMessage;
result.OuterId = request.OuterId;

result.Parameters ??= [];

result.Parameters.Add(nameof(request.TransactionId), request.TransactionId ?? string.Empty);

return result;
}

Expand Down
Loading