From 520c2d935418480786eefa03e8bd8813dd9e35b3 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 20 Apr 2022 14:14:17 +0200 Subject: [PATCH] Update For.cs --- src/core/Elsa.Core/Activities/For.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/core/Elsa.Core/Activities/For.cs b/src/core/Elsa.Core/Activities/For.cs index 75f09634b..7d96426a8 100644 --- a/src/core/Elsa.Core/Activities/For.cs +++ b/src/core/Elsa.Core/Activities/For.cs @@ -20,7 +20,7 @@ public class For : Activity [JsonConstructor] public For() { - OnSignalReceived(OnBreak); + OnSignalReceived(OnBreakAsync); } public For(int start, int end, ForOperator forOperator = ForOperator.LessThanOrEqual) : this() @@ -37,6 +37,8 @@ public class For : Activity [Outbound] public IActivity? Body { get; set; } public Variable CurrentValue { get; set; } = new(); + protected override bool CompleteImplicitly { get; } = false; + protected override void Execute(ActivityExecutionContext context) { var iterateNode = Body; @@ -84,8 +86,15 @@ public class For : Activity return ValueTask.CompletedTask; } - private void OnBreak(BreakSignal signal, SignalContext context) + private async ValueTask OnBreakAsync(BreakSignal signal, SignalContext context) { + // Prevent bubbling. context.StopPropagation(); + + // Remove child activity execution contexts. + context.ActivityExecutionContext.RemoveChildren(); + + // Mark this activity as completed. + await context.ActivityExecutionContext.CompleteActivityAsync(); } } \ No newline at end of file