@@ -96,7 +96,13 @@ public async Task<WorkflowExecutorResult> Execute(WorkflowInstance workflow, Can
96
96
_cancellationProcessor . ProcessCancellations ( workflow , def , wfResult ) ;
97
97
}
98
98
ProcessAfterExecutionIteration ( workflow , def , wfResult ) ;
99
- await DetermineNextExecutionTime ( workflow , def ) ;
99
+ DetermineNextExecutionTime ( workflow , def ) ;
100
+
101
+ using ( var scope = _serviceProvider . CreateScope ( ) )
102
+ {
103
+ var middlewareRunner = scope . ServiceProvider . GetRequiredService < IWorkflowMiddlewareRunner > ( ) ;
104
+ await middlewareRunner . RunPostMiddleware ( workflow , def ) ;
105
+ }
100
106
101
107
return wfResult ;
102
108
}
@@ -206,14 +212,13 @@ private void ProcessAfterExecutionIteration(WorkflowInstance workflow, WorkflowD
206
212
}
207
213
}
208
214
209
- private async Task DetermineNextExecutionTime ( WorkflowInstance workflow , WorkflowDefinition def )
215
+ private void DetermineNextExecutionTime ( WorkflowInstance workflow , WorkflowDefinition def )
210
216
{
211
217
//TODO: move to own class
212
218
workflow . NextExecution = null ;
213
219
214
220
if ( workflow . Status == WorkflowStatus . Complete )
215
221
{
216
- await RunPostMiddleware ( workflow , def ) ;
217
222
return ;
218
223
}
219
224
@@ -222,7 +227,6 @@ private async Task DetermineNextExecutionTime(WorkflowInstance workflow, Workflo
222
227
if ( ! pointer . SleepUntil . HasValue )
223
228
{
224
229
workflow . NextExecution = 0 ;
225
- await RunPostMiddleware ( workflow , def ) ;
226
230
return ;
227
231
}
228
232
@@ -238,7 +242,6 @@ private async Task DetermineNextExecutionTime(WorkflowInstance workflow, Workflo
238
242
if ( ! pointer . SleepUntil . HasValue )
239
243
{
240
244
workflow . NextExecution = 0 ;
241
- await RunPostMiddleware ( workflow , def ) ;
242
245
return ;
243
246
}
244
247
@@ -248,15 +251,12 @@ private async Task DetermineNextExecutionTime(WorkflowInstance workflow, Workflo
248
251
249
252
if ( ( workflow . NextExecution != null ) || ( workflow . ExecutionPointers . Any ( x => x . EndTime == null ) ) )
250
253
{
251
- await RunPostMiddleware ( workflow , def ) ;
252
254
return ;
253
255
}
254
256
255
257
workflow . Status = WorkflowStatus . Complete ;
256
258
workflow . CompleteTime = _datetimeProvider . UtcNow ;
257
259
258
- await RunPostMiddleware ( workflow , def ) ;
259
-
260
260
_publisher . PublishNotification ( new WorkflowCompleted
261
261
{
262
262
EventTimeUtc = _datetimeProvider . UtcNow ,
@@ -266,14 +266,5 @@ private async Task DetermineNextExecutionTime(WorkflowInstance workflow, Workflo
266
266
Version = workflow . Version
267
267
} ) ;
268
268
}
269
-
270
- private Task RunPostMiddleware ( WorkflowInstance workflow , WorkflowDefinition def )
271
- {
272
- using ( var scope = _serviceProvider . CreateScope ( ) )
273
- {
274
- var middlewareRunner = scope . ServiceProvider . GetRequiredService < IWorkflowMiddlewareRunner > ( ) ;
275
- return middlewareRunner . RunPostMiddleware ( workflow , def ) ;
276
- }
277
- }
278
269
}
279
270
}
0 commit comments