diff --git a/src/samples/aspnet/Elsa.Samples.ForkJoinTimerAndSignalHttp/Controllers/SignalController.cs b/src/samples/aspnet/Elsa.Samples.ForkJoinTimerAndSignalHttp/Controllers/SignalController.cs index 46c42578b..05c2b73c7 100644 --- a/src/samples/aspnet/Elsa.Samples.ForkJoinTimerAndSignalHttp/Controllers/SignalController.cs +++ b/src/samples/aspnet/Elsa.Samples.ForkJoinTimerAndSignalHttp/Controllers/SignalController.cs @@ -17,9 +17,9 @@ namespace Elsa.Samples.ForkJoinTimerAndSignalHttp.Controllers } [HttpGet] - public async Task Trigger(string signalName, string correlationId, CancellationToken cancellationToken) + public async Task Trigger(string signalName, string workflowInstanceId, CancellationToken cancellationToken) { - await _signaler.TriggerSignalAsync(signalName, workflowInstanceId: correlationId, cancellationToken: cancellationToken); + await _signaler.TriggerSignalAsync(signalName, workflowInstanceId: workflowInstanceId, cancellationToken: cancellationToken); return Ok("Signal triggered :)"); } } diff --git a/src/samples/console/Elsa.Samples.SignalingConsole/Program.cs b/src/samples/console/Elsa.Samples.SignalingConsole/Program.cs index aa68ba5c1..0f522f046 100644 --- a/src/samples/console/Elsa.Samples.SignalingConsole/Program.cs +++ b/src/samples/console/Elsa.Samples.SignalingConsole/Program.cs @@ -1,7 +1,14 @@ using System; +using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; +using Elsa.Activities.Signaling; +using Elsa.Activities.Signaling.Models; using Elsa.Activities.Signaling.Services; +using Elsa.Dispatch; +using Elsa.Models; using Elsa.Services; +using MediatR; using Microsoft.Extensions.DependencyInjection; namespace Elsa.Samples.SignalingConsole @@ -28,19 +35,28 @@ namespace Elsa.Samples.SignalingConsole var workflowRunner = services.GetRequiredService(); // Define a couple of cars so we can correlate workflows with them. - var cars = new[] {"Car 1", "Car 2"}; + var cars = new[] { "Car 1", "Car 2" }; + + var workflowInstances = new List(); // Execute a workflow for each car. foreach (var car in cars) - await workflowRunner.BuildAndStartWorkflowAsync(correlationId: car); + { + var workflowInstance = await workflowRunner.BuildAndStartWorkflowAsync(correlationId: car); + workflowInstances.Add(workflowInstance); + } Console.WriteLine("Hit enter to signal green light for Car 2."); Console.ReadLine(); // The workflows are now suspended at the red light. // Trigger a green light signal for the first car. + var signal = "Green"; + var correlationId = "Car 2"; + var car2Workflow = workflowInstances.First(x => x.CorrelationId == correlationId); var signaler = services.GetRequiredService(); - await signaler.TriggerSignalAsync("Green", workflowInstanceId: "Car 2"); + + await signaler.TriggerSignalAsync(signal, workflowInstanceId: car2Workflow.Id); // Notice that only the workflow correlated to the second car executed.