From d26df84c3c8d121cb839240eb4e77d603b3f22b8 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 6 Sep 2023 19:25:07 +0200 Subject: [PATCH] Update HTTP bookmark processor to persist its changes --- .../Elsa.Http/Services/HttpBookmarkProcessor.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/modules/Elsa.Http/Services/HttpBookmarkProcessor.cs b/src/modules/Elsa.Http/Services/HttpBookmarkProcessor.cs index 718ef360f..9d5e85429 100644 --- a/src/modules/Elsa.Http/Services/HttpBookmarkProcessor.cs +++ b/src/modules/Elsa.Http/Services/HttpBookmarkProcessor.cs @@ -4,6 +4,7 @@ using Elsa.Http.Models; using Elsa.Workflows.Core.Helpers; using Elsa.Workflows.Core.State; using Elsa.Workflows.Management.Contracts; +using Elsa.Workflows.Management.Mappers; using Elsa.Workflows.Runtime.Contracts; using Microsoft.AspNetCore.Http; @@ -16,6 +17,8 @@ public class HttpBookmarkProcessor : IHttpBookmarkProcessor private readonly IWorkflowDefinitionService _workflowDefinitionService; private readonly IWorkflowHostFactory _workflowHostFactory; private readonly IHttpContextAccessor _httpContextAccessor; + private readonly IWorkflowInstanceStore _workflowInstanceStore; + private readonly WorkflowStateMapper _workflowStateMapper; /// /// Constructor. @@ -24,12 +27,16 @@ public class HttpBookmarkProcessor : IHttpBookmarkProcessor IWorkflowRuntime workflowRuntime, IWorkflowDefinitionService workflowDefinitionService, IWorkflowHostFactory workflowHostFactory, - IHttpContextAccessor httpContextAccessor) + IHttpContextAccessor httpContextAccessor, + IWorkflowInstanceStore workflowInstanceStore, + WorkflowStateMapper workflowStateMapper) { _workflowRuntime = workflowRuntime; _workflowDefinitionService = workflowDefinitionService; _workflowHostFactory = workflowHostFactory; _httpContextAccessor = httpContextAccessor; + _workflowInstanceStore = workflowInstanceStore; + _workflowStateMapper = workflowStateMapper; } /// @@ -100,6 +107,10 @@ public class HttpBookmarkProcessor : IHttpBookmarkProcessor workflowStates.Add(workflowState); } + // Save the updated workflow states. + foreach (var workflowInstance in workflowStates.Select(workflowState => _workflowStateMapper.Map(workflowState)!)) + await _workflowInstanceStore.SaveAsync(workflowInstance, cancellationToken); + return workflowStates; } } \ No newline at end of file