Update For.cs

This commit is contained in:
Sipke Schoorstra 2022-04-20 14:14:17 +02:00
parent 1325c3f9c3
commit 520c2d9354

View file

@ -20,7 +20,7 @@ public class For : Activity
[JsonConstructor]
public For()
{
OnSignalReceived<BreakSignal>(OnBreak);
OnSignalReceived<BreakSignal>(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<int?> 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();
}
}