diff --git a/src/core/Elsa.Core/Activities/ControlFlow/ParallelForEach/ParallelForEachBuilderExtensions.cs b/src/core/Elsa.Core/Activities/ControlFlow/ParallelForEach/ParallelForEachBuilderExtensions.cs index d3b70ba54..0c1d98953 100644 --- a/src/core/Elsa.Core/Activities/ControlFlow/ParallelForEach/ParallelForEachBuilderExtensions.cs +++ b/src/core/Elsa.Core/Activities/ControlFlow/ParallelForEach/ParallelForEachBuilderExtensions.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Runtime.CompilerServices; using Elsa.Builders; using Elsa.Services.Models; @@ -18,28 +19,28 @@ namespace Elsa.Activities.ControlFlow [CallerFilePath] string? sourceFile = default) => builder.Then(setup, branch => iterate(branch.When(OutcomeNames.Iterate)), lineNumber, sourceFile); - public static IActivityBuilder ParallelForEach( + public static IActivityBuilder ParallelForEach( this IBuilder builder, - Func> items, + Func> items, Action iterate, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => - builder.ParallelForEach(activity => activity.Set(x => x.Items, items), iterate, lineNumber, sourceFile); + builder.ParallelForEach(activity => activity.Set(x => x.Items, context => items(context).Cast()), iterate, lineNumber, sourceFile); - public static IActivityBuilder ParallelForEach( + public static IActivityBuilder ParallelForEach( this IBuilder builder, - Func> items, + Func> items, Action iterate, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => - builder.ParallelForEach(activity => activity.Set(x => x.Items, items), iterate, lineNumber, sourceFile); + builder.ParallelForEach(activity => activity.Set(x => x.Items, () => items().Cast()), iterate, lineNumber, sourceFile); - public static IActivityBuilder ParallelForEach( + public static IActivityBuilder ParallelForEach( this IBuilder builder, - ICollection items, + ICollection items, Action iterate, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => - builder.ParallelForEach(activity => activity.Set(x => x.Items, items), iterate, lineNumber, sourceFile); + builder.ParallelForEach(activity => activity.Set(x => x.Items, items.Cast()), iterate, lineNumber, sourceFile); } } \ No newline at end of file