From 46ba0d9829831668ca30c19dcb7d24bf142601eb Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Mon, 25 Dec 2023 22:23:23 +0100 Subject: [PATCH] Refactor task payload extraction and update workflow builder Modified the way task payload is extracted in the OrderFoodTaskHandler.cs for more robustness. The input parameter of the workflow builder in the HungryWorkflow.cs file has also been refactored for efficiency. Making these tweaks streamlines management of values within the tasks. --- .../Handlers/OrderFoodTaskHandler.cs | 5 +++-- .../Workflows/HungryWorkflow.cs | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/samples/aspnet/Elsa.Samples.AspNet.RunTaskIntegration/Handlers/OrderFoodTaskHandler.cs b/src/samples/aspnet/Elsa.Samples.AspNet.RunTaskIntegration/Handlers/OrderFoodTaskHandler.cs index 33bb889e9..7a4dd652b 100644 --- a/src/samples/aspnet/Elsa.Samples.AspNet.RunTaskIntegration/Handlers/OrderFoodTaskHandler.cs +++ b/src/samples/aspnet/Elsa.Samples.AspNet.RunTaskIntegration/Handlers/OrderFoodTaskHandler.cs @@ -1,6 +1,7 @@ using System; using System.Threading; using System.Threading.Tasks; +using Elsa.Extensions; using Elsa.Mediator.Contracts; using Elsa.Workflows.Runtime.Contracts; using Elsa.Workflows.Runtime.Notifications; @@ -21,8 +22,8 @@ public class OrderFoodTaskHandler : INotificationHandler if (notification.TaskName != "OrderFood") return; - var args = (dynamic)notification.TaskPayload!; - var foodName = args.Food; + var args = notification.TaskPayload!; + var foodName = args.GetValue("Food"); Console.WriteLine("Preparing {0}...", foodName); await Task.Delay(1000, cancellationToken); diff --git a/src/samples/aspnet/Elsa.Samples.AspNet.RunTaskIntegration/Workflows/HungryWorkflow.cs b/src/samples/aspnet/Elsa.Samples.AspNet.RunTaskIntegration/Workflows/HungryWorkflow.cs index 36e260087..447beb86f 100644 --- a/src/samples/aspnet/Elsa.Samples.AspNet.RunTaskIntegration/Workflows/HungryWorkflow.cs +++ b/src/samples/aspnet/Elsa.Samples.AspNet.RunTaskIntegration/Workflows/HungryWorkflow.cs @@ -14,7 +14,7 @@ public class HungryWorkflow : WorkflowBase { protected override void Build(IWorkflowBuilder builder) { - var deliveredFood = new Variable(); + var deliveredFood = builder.WithVariable(); builder.Root = new Sequence { @@ -29,7 +29,7 @@ public class HungryWorkflow : WorkflowBase new WriteLine("Hunger detected!"), new RunTask("OrderFood") { - Payload = new(new Dictionary() { ["Food"] = "Pizza" }), + Payload = new(new Dictionary { ["Food"] = "Pizza" }), Result = new Output(deliveredFood) }, new WriteLine(context => $"Eating the {deliveredFood.Get(context)}"),