using Elsa.Scheduling.Contracts; using Elsa.Scheduling.Models; using Elsa.Workflows.Runtime.Contracts; using Elsa.Workflows.Runtime.Requests; using Microsoft.Extensions.DependencyInjection; namespace Elsa.Scheduling.Tasks; /// /// A task that resumes a workflow. /// public class ResumeWorkflowTask : ITask { private readonly DispatchWorkflowInstanceRequest _dispatchWorkflowInstanceRequest; /// /// Initializes a new instance of the class. /// /// The dispatch workflow instance request. public ResumeWorkflowTask(DispatchWorkflowInstanceRequest dispatchWorkflowInstanceRequest) { _dispatchWorkflowInstanceRequest = dispatchWorkflowInstanceRequest; } /// public async ValueTask ExecuteAsync(TaskExecutionContext context) { var workflowDispatcher = context.ServiceProvider.GetRequiredService(); await workflowDispatcher.DispatchAsync(_dispatchWorkflowInstanceRequest, cancellationToken: context.CancellationToken); } }