Skip to content

Commit 162383c

Browse files
Refactoring
1 parent b1e6b8d commit 162383c

File tree

1 file changed

+37
-31
lines changed

1 file changed

+37
-31
lines changed

src/VirtoCommerce.OrdersModule.Data/Services/CustomerOrderPaymentService.cs

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -59,43 +59,49 @@ public virtual async Task<PostProcessPaymentRequestResult> PostProcessPaymentAsy
5959
foreach (var inPayment in customerOrder.InPayments.Where(x => x.PaymentMethod != null && (string.IsNullOrEmpty(paymentParameters.PaymentMethodCode) || x.GatewayCode.EqualsIgnoreCase(paymentParameters.PaymentMethodCode))))
6060
{
6161
//Each payment method must check that these parameters are addressed to it
62-
var result = inPayment.PaymentMethod.ValidatePostProcessRequest(paymentParameters.Parameters);
62+
var paymentMethodValidationResult = inPayment.PaymentMethod.ValidatePostProcessRequest(paymentParameters.Parameters);
6363

64-
if (result.IsSuccess)
64+
if (!paymentMethodValidationResult.IsSuccess)
6565
{
66-
var request = new PostProcessPaymentRequest
67-
{
68-
OrderId = customerOrder.Id,
69-
Order = customerOrder,
70-
PaymentId = inPayment.Id,
71-
Payment = inPayment,
72-
StoreId = customerOrder.StoreId,
73-
Store = store,
74-
OuterId = result.OuterId,
75-
Parameters = paymentParameters.Parameters
76-
};
66+
continue;
67+
}
68+
69+
var paymentMethodRequest = new PostProcessPaymentRequest
70+
{
71+
OrderId = customerOrder.Id,
72+
Order = customerOrder,
73+
PaymentId = inPayment.Id,
74+
Payment = inPayment,
75+
StoreId = customerOrder.StoreId,
76+
Store = store,
77+
OuterId = paymentMethodValidationResult.OuterId,
78+
Parameters = paymentParameters.Parameters
79+
};
80+
81+
var paymentMethodPostProcessResult = inPayment.PaymentMethod.PostProcessPayment(paymentMethodRequest);
82+
83+
if (paymentMethodPostProcessResult == null)
84+
{
85+
continue;
86+
}
7787

78-
var retVal = inPayment.PaymentMethod.PostProcessPayment(request);
88+
var customerOrderValidationResult = await ValidateAsync(customerOrder);
7989

80-
if (retVal != null)
90+
if (!customerOrderValidationResult.IsValid)
91+
{
92+
return new PostProcessPaymentRequestNotValidResult()
8193
{
82-
var validationResult = await ValidateAsync(customerOrder);
83-
if (!validationResult.IsValid)
84-
{
85-
return new PostProcessPaymentRequestNotValidResult()
86-
{
87-
Errors = validationResult.Errors,
88-
ErrorMessage = string.Join(" ", validationResult.Errors.Select(x => x.ErrorMessage))
89-
};
90-
}
91-
await customerOrderService.SaveChangesAsync(new[] { customerOrder });
92-
93-
// order Number is required
94-
retVal.OrderId = customerOrder.Number;
95-
}
96-
97-
return retVal;
94+
Errors = customerOrderValidationResult.Errors,
95+
ErrorMessage = string.Join(" ", customerOrderValidationResult.Errors.Select(x => x.ErrorMessage))
96+
};
9897
}
98+
99+
await customerOrderService.SaveChangesAsync(new[] { customerOrder });
100+
101+
// order Number is required
102+
paymentMethodPostProcessResult.OrderId = customerOrder.Number;
103+
104+
return paymentMethodPostProcessResult;
99105
}
100106

101107
return new PostProcessPaymentRequestResult { ErrorMessage = "Payment method not found" };

0 commit comments

Comments
 (0)