14
14
15
15
using Microsoft . AspNetCore . Http ;
16
16
using Microsoft . Extensions . Options ;
17
+ using Microsoft . Extensions . Logging ;
17
18
18
19
namespace Umbraco . Forms . Integrations . Commerce . Emerchantpay
19
20
{
@@ -33,6 +34,8 @@ public class PaymentProviderWorkflow : WorkflowType
33
34
34
35
private readonly ISettingsParser _parser ;
35
36
37
+ private readonly ILogger < PaymentProviderWorkflow > _logger ;
38
+
36
39
#region WorkflowSettings
37
40
38
41
[ Core . Attributes . Setting ( "Amount" ,
@@ -84,9 +87,13 @@ public class PaymentProviderWorkflow : WorkflowType
84
87
85
88
#endregion
86
89
87
- public PaymentProviderWorkflow ( IOptions < PaymentProviderSettings > paymentProviderSettings , IHttpContextAccessor httpContextAccessor ,
90
+ public PaymentProviderWorkflow (
91
+ IOptions < PaymentProviderSettings > paymentProviderSettings ,
92
+ IHttpContextAccessor httpContextAccessor ,
88
93
ConsumerService consumerService , PaymentService paymentService , UrlHelper urlHelper ,
89
- IMappingService < Mapping > mappingService , ISettingsParser parser )
94
+ IMappingService < Mapping > mappingService ,
95
+ ISettingsParser parser ,
96
+ ILogger < PaymentProviderWorkflow > logger )
90
97
91
98
{
92
99
Id = new Guid ( Constants . WorkflowId ) ;
@@ -107,12 +114,14 @@ public PaymentProviderWorkflow(IOptions<PaymentProviderSettings> paymentProvider
107
114
_parser = parser ;
108
115
109
116
_paymentProviderSettings = paymentProviderSettings . Value ;
117
+
118
+ _logger = logger ;
110
119
}
111
120
112
121
public override WorkflowExecutionStatus Execute ( WorkflowExecutionContext context )
113
122
{
114
123
if ( ! _mappingService . TryParse ( CustomerDetailsMappings , out var mappings ) ) return WorkflowExecutionStatus . Failed ;
115
-
124
+
116
125
var mappingBuilder = new MappingBuilder ( )
117
126
. SetValues ( context . Record , mappings )
118
127
. Build ( ) ;
@@ -124,6 +133,13 @@ public override WorkflowExecutionStatus Execute(WorkflowExecutionContext context
124
133
var createConsumerTask = Task . Run ( async ( ) => await _consumerService . Create ( consumer ) ) ;
125
134
126
135
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
+
127
143
if ( result . Code == Constants . ErrorCode . ConsumerExists )
128
144
{
129
145
// step 1.1. Get Consumer
@@ -204,6 +220,8 @@ public override WorkflowExecutionStatus Execute(WorkflowExecutionContext context
204
220
205
221
formHelper . UpdateRecordFieldValue ( statusKey , "error" ) ;
206
222
223
+ _logger . LogError ( $ "Failed to create payment: { createPaymentResult . TechnicalMessage } .") ;
224
+
207
225
return WorkflowExecutionStatus . Failed ;
208
226
}
209
227
0 commit comments