Skip to content

Commit 2164e0c

Browse files
committed
Cleanup
1 parent 0239cd3 commit 2164e0c

File tree

1 file changed

+29
-30
lines changed

1 file changed

+29
-30
lines changed

src/WorkflowCore/Services/WorkflowMiddlewareRunner.cs

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -33,33 +33,46 @@ public async Task RunPreMiddleware(WorkflowInstance workflow, WorkflowDefinition
3333
}
3434

3535
/// <inheritdoc cref="IWorkflowMiddlewareRunner.RunPostMiddleware"/>
36-
public async Task RunPostMiddleware(WorkflowInstance workflow, WorkflowDefinition def)
36+
public Task RunPostMiddleware(WorkflowInstance workflow, WorkflowDefinition def)
3737
{
38-
var postMiddleware = _middleware
39-
.Where(m => m.Phase == WorkflowMiddlewarePhase.PostWorkflow);
40-
try
41-
{
42-
await RunWorkflowMiddleware(workflow, postMiddleware);
43-
}
44-
catch (Exception exception)
45-
{
46-
await HandleWorkflowMiddlewareError(def.OnPostMiddlewareError, exception);
47-
}
38+
return RunWorkflowMiddlewareWithErrorHandling(
39+
workflow,
40+
WorkflowMiddlewarePhase.PostWorkflow,
41+
def.OnPostMiddlewareError);
4842
}
4943

5044
/// <inheritdoc cref="IWorkflowMiddlewareRunner.RunExecuteMiddleware"/>
51-
public async Task RunExecuteMiddleware(WorkflowInstance workflow, WorkflowDefinition def)
45+
public Task RunExecuteMiddleware(WorkflowInstance workflow, WorkflowDefinition def)
5246
{
53-
var executeMiddleware = _middleware
54-
.Where(m => m.Phase == WorkflowMiddlewarePhase.ExecuteWorkflow);
47+
return RunWorkflowMiddlewareWithErrorHandling(
48+
workflow,
49+
WorkflowMiddlewarePhase.ExecuteWorkflow,
50+
def.OnExecuteMiddlewareError);
51+
}
52+
53+
public async Task RunWorkflowMiddlewareWithErrorHandling(
54+
WorkflowInstance workflow,
55+
WorkflowMiddlewarePhase phase,
56+
Type middlewareErrorType)
57+
{
58+
var middleware = _middleware.Where(m => m.Phase == phase);
5559

5660
try
5761
{
58-
await RunWorkflowMiddleware(workflow, executeMiddleware);
62+
await RunWorkflowMiddleware(workflow, middleware);
5963
}
6064
catch (Exception exception)
6165
{
62-
await HandleWorkflowMiddlewareError(def.OnExecuteMiddlewareError, exception);
66+
var errorHandlerType = middlewareErrorType ?? typeof(IWorkflowMiddlewareErrorHandler);
67+
68+
using (var scope = _serviceProvider.CreateScope())
69+
{
70+
var typeInstance = scope.ServiceProvider.GetService(errorHandlerType);
71+
if (typeInstance is IWorkflowMiddlewareErrorHandler handler)
72+
{
73+
await handler.HandleAsync(exception);
74+
}
75+
}
6376
}
6477
}
6578

@@ -73,19 +86,5 @@ private static Task RunWorkflowMiddleware(
7386
(previous, middleware) =>
7487
() => middleware.HandleAsync(workflow, previous))();
7588
}
76-
77-
private async Task HandleWorkflowMiddlewareError(Type middlewareErrorType, Exception exception)
78-
{
79-
var errorHandlerType = middlewareErrorType ?? typeof(IWorkflowMiddlewareErrorHandler);
80-
81-
using (var scope = _serviceProvider.CreateScope())
82-
{
83-
var typeInstance = scope.ServiceProvider.GetService(errorHandlerType);
84-
if (typeInstance is IWorkflowMiddlewareErrorHandler handler)
85-
{
86-
await handler.HandleAsync(exception);
87-
}
88-
}
89-
}
9089
}
9190
}

0 commit comments

Comments
 (0)