Update HTTP bookmark processor to persist its changes

This commit is contained in:
Sipke Schoorstra 2023-09-06 19:25:07 +02:00
parent a4b660026c
commit d26df84c3c

View file

@ -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;
/// <summary>
/// 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;
}
/// <inheritdoc />
@ -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;
}
}