From e0a20c2dfcde0da14294b9a21df8126fecdb3ec3 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 13 Mar 2024 19:59:56 +0100 Subject: [PATCH] Add logging to OrderBatchProcessor workflow Added a sequence with WriteLine activity to log processing of each order. Also, ensured the activity execution context properly sets its Tag property when a completion callback is provided. --- .../Workflows/OrderBatchProcessor.cs | 10 +++++++++- .../Contexts/ActivityExecutionContext.cs | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/samples/aspnet/Elsa.Samples.AspNet.BatchProcessing/Workflows/OrderBatchProcessor.cs b/samples/aspnet/Elsa.Samples.AspNet.BatchProcessing/Workflows/OrderBatchProcessor.cs index 0ad44abf9..e43fbbfb8 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.BatchProcessing/Workflows/OrderBatchProcessor.cs +++ b/samples/aspnet/Elsa.Samples.AspNet.BatchProcessing/Workflows/OrderBatchProcessor.cs @@ -4,6 +4,7 @@ using Elsa.Samples.AspNet.BatchProcessing.Models; using Elsa.Workflows; using Elsa.Workflows.Activities; using Elsa.Workflows.Contracts; +using Elsa.Workflows.Memory; namespace Elsa.Samples.AspNet.BatchProcessing.Workflows; @@ -27,7 +28,14 @@ public class OrderBatchProcessor : WorkflowBase }, new ParallelForEach { - Items = new(orders) + Items = new(orders), + Body = new Sequence + { + Activities = + { + new WriteLine(context => $"Processing order {context.GetVariable("CurrentValue")!.Id}"), + } + } }, new WriteLine("Done!") } diff --git a/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.cs b/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.cs index 9583fbc20..65d4e7e75 100644 --- a/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.cs +++ b/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.cs @@ -278,6 +278,7 @@ public partial class ActivityExecutionContext : IExecutionContext { if (completionCallback != null) { + Tag = options?.Tag; var completedContext = new ActivityCompletedContext(this, this); await completionCallback(completedContext); }