From 605a46fdf741425672f986f05f52f4af3674ebaa Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 10 Jan 2025 10:07:54 +0100 Subject: [PATCH] Refactor workflow graph retrieval logic. Extract shared workflow graph retrieval logic into a new `GetWorkflowGraphAsync` method, reducing code duplication. Updated call sites to use the new method for better maintainability and readability. --- .../Services/LocalWorkflowClient.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/modules/Elsa.Workflows.Runtime/Services/LocalWorkflowClient.cs b/src/modules/Elsa.Workflows.Runtime/Services/LocalWorkflowClient.cs index b5380ed29..a81b08e66 100644 --- a/src/modules/Elsa.Workflows.Runtime/Services/LocalWorkflowClient.cs +++ b/src/modules/Elsa.Workflows.Runtime/Services/LocalWorkflowClient.cs @@ -29,8 +29,7 @@ public class LocalWorkflowClient( public async Task CreateInstanceAsync(CreateWorkflowInstanceRequest request, CancellationToken cancellationToken = default) { var workflowDefinitionHandle = request.WorkflowDefinitionHandle; - var workflowGraph = await workflowDefinitionService.FindWorkflowGraphAsync(workflowDefinitionHandle, cancellationToken); - if (workflowGraph == null) throw new InvalidOperationException($"Workflow with version ID {workflowDefinitionHandle} not found."); + var workflowGraph = await GetWorkflowGraphAsync(workflowDefinitionHandle, cancellationToken); var options = new WorkflowInstanceOptions { @@ -138,8 +137,7 @@ public class LocalWorkflowClient( public async Task CreateInstanceInternalAsync(CreateWorkflowInstanceRequest request, CancellationToken cancellationToken = default) { var workflowDefinitionHandle = request.WorkflowDefinitionHandle; - var workflowGraph = await workflowDefinitionService.FindWorkflowGraphAsync(workflowDefinitionHandle, cancellationToken); - if (workflowGraph == null) throw new InvalidOperationException($"Workflow with version ID {workflowDefinitionHandle} not found."); + var workflowGraph = await GetWorkflowGraphAsync(workflowDefinitionHandle, cancellationToken); var options = new WorkflowInstanceOptions { @@ -162,8 +160,14 @@ public class LocalWorkflowClient( private async Task GetWorkflowGraphAsync(WorkflowInstance workflowInstance, CancellationToken cancellationToken) { - var workflowGraph = await workflowDefinitionService.FindWorkflowGraphAsync(workflowInstance.DefinitionVersionId, cancellationToken); - if (workflowGraph == null) throw new InvalidOperationException($"Workflow graph with version ID {workflowInstance.DefinitionVersionId} not found."); + var handle = WorkflowDefinitionHandle.ByDefinitionVersionId(workflowInstance.DefinitionVersionId); + return await GetWorkflowGraphAsync(handle, cancellationToken); + } + + private async Task GetWorkflowGraphAsync(WorkflowDefinitionHandle definitionHandle, CancellationToken cancellationToken) + { + var workflowGraph = await workflowDefinitionService.FindWorkflowGraphAsync(definitionHandle, cancellationToken); + if (workflowGraph == null) throw new InvalidOperationException($"Workflow graph with handle {definitionHandle} not found."); return workflowGraph; } } \ No newline at end of file