2022-01-13 21:38:01 +00:00
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
2022-01-18 19:28:48 +00:00
|
|
|
using Elsa.Models;
|
2022-01-14 21:39:36 +00:00
|
|
|
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-01-13 21:38:01 +00:00
|
|
|
|
2022-02-01 19:45:11 +00:00
|
|
|
namespace Elsa.Modules.Scheduling.Jobs;
|
2022-01-13 21:38:01 +00:00
|
|
|
|
2022-01-18 19:28:48 +00:00
|
|
|
public record ResumeWorkflowJob(string WorkflowInstanceId, Bookmark Bookmark) : IJob
|
2022-01-13 21:38:01 +00:00
|
|
|
{
|
2022-01-18 19:28:48 +00:00
|
|
|
public string JobId => $"Bookmark:{Bookmark.Id}";
|
2022-01-14 21:39:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class ResumeWorkflowJobHandler : JobHandler<ResumeWorkflowJob>
|
|
|
|
|
{
|
|
|
|
|
private readonly IWorkflowInvoker _workflowInvoker;
|
|
|
|
|
public ResumeWorkflowJobHandler(IWorkflowInvoker workflowInvoker) => _workflowInvoker = workflowInvoker;
|
2022-01-13 21:38:01 +00:00
|
|
|
|
2022-01-14 21:39:36 +00:00
|
|
|
protected override async Task HandleAsync(ResumeWorkflowJob job, CancellationToken cancellationToken)
|
2022-01-13 21:38:01 +00:00
|
|
|
{
|
2022-01-18 19:28:48 +00:00
|
|
|
var request = new DispatchWorkflowInstanceRequest(job.WorkflowInstanceId, job.Bookmark);
|
|
|
|
|
await _workflowInvoker.DispatchAsync(request, cancellationToken);
|
2022-01-13 21:38:01 +00:00
|
|
|
}
|
|
|
|
|
}
|