1414
1515using Microsoft . AspNetCore . Http ;
1616using Microsoft . Extensions . Options ;
17+ using Microsoft . Extensions . Logging ;
1718
1819namespace 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