Elsa依据工作流程Id实例化工作流并调用相关节点信号量执行
using Elsa;
using Elsa.Persistence;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Elsa.Persistence.Specifications.WorkflowInstances;
using Elsa.Activities.Signaling.Services;
using System.Threading;
namespace Workflow.Dashboard.Host.Pages.Test
{
//http://localhost:49814/test/instance?id=576561afe7264ccd854b4b4ce1fcae45&userAction=Approve
public class instanceModel : PageModel
{
private readonly IWorkflowInstanceStore workflowInstanceStore;
private readonly ISignaler signaler;
public instanceModel(IWorkflowInstanceStore workflowInstanceStore, ISignaler signaler)
{
this.workflowInstanceStore = workflowInstanceStore;
this.signaler = signaler;
}
[BindProperty(SupportsGet = true)]
public string id { get; set; }
[BindProperty(SupportsGet = true)]
public string userAction { get; set; }
public string DisplayName { get; set; }
public async Task OnGetAsync()
{
var ins = await workflowInstanceStore.FindAsync(new WorkflowInstanceIdSpecification(id));
DisplayName = ins.DefinitionId;
var startedWorkflows = await signaler.TriggerSignalAsync(userAction, workflowInstanceId:id);
}
}
}