public async Task <IActionResult> Details(string id, string returnUrl, CancellationToken cancellationToken) { var instance = await workflowInstanceStore.GetByIdAsync(id, cancellationToken); if (instance == null) { return(NotFound()); } var definition = await workflowDefinitionStore.GetByIdAsync( instance.DefinitionId, VersionOptions.SpecificVersion(instance.Version), cancellationToken ); var workflow = new WorkflowModel { Activities = definition.Activities.Select(x => CreateActivityModel(x, instance)).ToList(), Connections = definition.Connections.Select(x => new ConnectionModel(x)).ToList() }; var model = new WorkflowInstanceDetailsModel( instance, definition, workflow, options.Value.ActivityDefinitions, returnUrl); return(View("Details", model)); }
public async Task <IActionResult> Trigger(string token, CancellationToken cancellationToken) { if (!tokenService.TryDecryptToken(token, out Signal signal)) { return(NotFound()); } var workflowInstance = await workflowInstanceStore.GetByIdAsync(signal.WorkflowInstanceId, cancellationToken); if (workflowInstance == null) { return(NotFound()); } var input = new Variables { ["signal"] = signal.Name }; await workflowInvoker.ResumeAsync(workflowInstance, input, cancellationToken : cancellationToken); return(HttpContext.Items.ContainsKey(WorkflowHttpResult.Instance) ? (IActionResult) new EmptyResult() : Accepted()); }