elsa-core/src/modules/Elsa.Modules.Scheduling/Jobs/ResumeWorkflowJob.cs

26 lines
901 B
C#
Raw Normal View History

using System.Threading;
using System.Threading.Tasks;
using Elsa.Models;
using Elsa.Runtime.Contracts;
using Elsa.Runtime.Models;
2022-03-07 21:56:16 +00:00
using Elsa.Jobs.Abstractions;
using Elsa.Jobs.Contracts;
2022-02-01 19:45:11 +00:00
namespace Elsa.Modules.Scheduling.Jobs;
public record ResumeWorkflowJob(string WorkflowInstanceId, Bookmark Bookmark) : IJob
{
public string JobId => $"Bookmark:{Bookmark.Id}";
}
public class ResumeWorkflowJobHandler : JobHandler<ResumeWorkflowJob>
{
private readonly IWorkflowInvoker _workflowInvoker;
public ResumeWorkflowJobHandler(IWorkflowInvoker workflowInvoker) => _workflowInvoker = workflowInvoker;
protected override async Task HandleAsync(ResumeWorkflowJob job, CancellationToken cancellationToken)
{
var request = new DispatchWorkflowInstanceRequest(job.WorkflowInstanceId, job.Bookmark);
await _workflowInvoker.DispatchAsync(request, cancellationToken);
}
}