Skip to content

Commit bd72f5c

Browse files
committed
Log create customer/payment errors and exceptions handling.
1 parent cf514f7 commit bd72f5c

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

src/Umbraco.Forms.Integrations.Commerce.EMerchantPay/PaymentProviderWorkflow.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
using Microsoft.AspNetCore.Http;
1616
using Microsoft.Extensions.Options;
17+
using Microsoft.Extensions.Logging;
1718

1819
namespace Umbraco.Forms.Integrations.Commerce.Emerchantpay
1920
{
@@ -33,6 +34,8 @@ public class PaymentProviderWorkflow : WorkflowType
3334

3435
private readonly ISettingsParser _parser;
3536

37+
private readonly ILogger<PaymentProviderWorkflow> _logger;
38+
3639
#region WorkflowSettings
3740

3841
[Core.Attributes.Setting("Amount",
@@ -84,9 +87,13 @@ public class PaymentProviderWorkflow : WorkflowType
8487

8588
#endregion
8689

87-
public PaymentProviderWorkflow(IOptions<PaymentProviderSettings> paymentProviderSettings, IHttpContextAccessor httpContextAccessor,
90+
public PaymentProviderWorkflow(
91+
IOptions<PaymentProviderSettings> paymentProviderSettings,
92+
IHttpContextAccessor httpContextAccessor,
8893
ConsumerService consumerService, PaymentService paymentService, UrlHelper urlHelper,
89-
IMappingService<Mapping> mappingService, ISettingsParser parser)
94+
IMappingService<Mapping> mappingService,
95+
ISettingsParser parser,
96+
ILogger<PaymentProviderWorkflow> logger)
9097

9198
{
9299
Id = new Guid(Constants.WorkflowId);
@@ -107,12 +114,14 @@ public PaymentProviderWorkflow(IOptions<PaymentProviderSettings> paymentProvider
107114
_parser = parser;
108115

109116
_paymentProviderSettings = paymentProviderSettings.Value;
117+
118+
_logger = logger;
110119
}
111120

112121
public override WorkflowExecutionStatus Execute(WorkflowExecutionContext context)
113122
{
114123
if (!_mappingService.TryParse(CustomerDetailsMappings, out var mappings)) return WorkflowExecutionStatus.Failed;
115-
124+
116125
var mappingBuilder = new MappingBuilder()
117126
.SetValues(context.Record, mappings)
118127
.Build();
@@ -124,6 +133,13 @@ public override WorkflowExecutionStatus Execute(WorkflowExecutionContext context
124133
var createConsumerTask = Task.Run(async () => await _consumerService.Create(consumer));
125134

126135
var result = createConsumerTask.Result;
136+
if(result.Status.Contains("error") && result.Code != Constants.ErrorCode.ConsumerExists)
137+
{
138+
_logger.LogError($"Failed to create consumer: {result.TechnicalMessage}.");
139+
140+
return WorkflowExecutionStatus.Failed;
141+
}
142+
127143
if (result.Code == Constants.ErrorCode.ConsumerExists)
128144
{
129145
// step 1.1. Get Consumer
@@ -204,6 +220,8 @@ public override WorkflowExecutionStatus Execute(WorkflowExecutionContext context
204220

205221
formHelper.UpdateRecordFieldValue(statusKey, "error");
206222

223+
_logger.LogError($"Failed to create payment: {createPaymentResult.TechnicalMessage}.");
224+
207225
return WorkflowExecutionStatus.Failed;
208226
}
209227

0 commit comments

Comments
 (0)