From dfbba1e1762c870da1b6c258daed8a7cfc5e5423 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Thu, 25 Mar 2021 22:16:13 +0100 Subject: [PATCH] Fix casting issue with ForEach and ParallelForEach builder extensions --- .../ControlFlow/ForEach/ForEachBuilderExtensions.cs | 4 ++-- .../ParallelForEach/ParallelForEachBuilderExtensions.cs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core/Elsa.Core/Activities/ControlFlow/ForEach/ForEachBuilderExtensions.cs b/src/core/Elsa.Core/Activities/ControlFlow/ForEach/ForEachBuilderExtensions.cs index a081e45d6..68e246783 100644 --- a/src/core/Elsa.Core/Activities/ControlFlow/ForEach/ForEachBuilderExtensions.cs +++ b/src/core/Elsa.Core/Activities/ControlFlow/ForEach/ForEachBuilderExtensions.cs @@ -25,7 +25,7 @@ namespace Elsa.Activities.ControlFlow Action iterate, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => - builder.ForEach(activity => activity.Set(x => x.Items, context => items(context).Cast()), iterate, lineNumber, sourceFile); + builder.ForEach(activity => activity.Set(x => x.Items, context => items(context).Select(x => (object)x!)), iterate, lineNumber, sourceFile); public static IActivityBuilder ForEach( this IBuilder builder, @@ -41,6 +41,6 @@ namespace Elsa.Activities.ControlFlow Action iterate, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => - builder.ForEach(activity => activity.Set(x => x.Items, items.Cast()), iterate, lineNumber, sourceFile); + builder.ForEach(activity => activity.Set(x => x.Items, items.Select(x => (object)x!)), iterate, lineNumber, sourceFile); } } \ No newline at end of file diff --git a/src/core/Elsa.Core/Activities/ControlFlow/ParallelForEach/ParallelForEachBuilderExtensions.cs b/src/core/Elsa.Core/Activities/ControlFlow/ParallelForEach/ParallelForEachBuilderExtensions.cs index 0c1d98953..30deb1c92 100644 --- a/src/core/Elsa.Core/Activities/ControlFlow/ParallelForEach/ParallelForEachBuilderExtensions.cs +++ b/src/core/Elsa.Core/Activities/ControlFlow/ParallelForEach/ParallelForEachBuilderExtensions.cs @@ -25,7 +25,7 @@ namespace Elsa.Activities.ControlFlow Action iterate, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => - builder.ParallelForEach(activity => activity.Set(x => x.Items, context => items(context).Cast()), iterate, lineNumber, sourceFile); + builder.ParallelForEach(activity => activity.Set(x => x.Items, context => items(context).Select(x => (object)x!).ToList()), iterate, lineNumber, sourceFile); public static IActivityBuilder ParallelForEach( this IBuilder builder, @@ -33,7 +33,7 @@ namespace Elsa.Activities.ControlFlow Action iterate, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => - builder.ParallelForEach(activity => activity.Set(x => x.Items, () => items().Cast()), iterate, lineNumber, sourceFile); + builder.ParallelForEach(activity => activity.Set(x => x.Items, () => items().Select(x => (object)x!).ToList()), iterate, lineNumber, sourceFile); public static IActivityBuilder ParallelForEach( this IBuilder builder, @@ -41,6 +41,6 @@ namespace Elsa.Activities.ControlFlow Action iterate, [CallerLineNumber] int lineNumber = default, [CallerFilePath] string? sourceFile = default) => - builder.ParallelForEach(activity => activity.Set(x => x.Items, items.Cast()), iterate, lineNumber, sourceFile); + builder.ParallelForEach(activity => activity.Set(x => x.Items, items.Select(x => (object)x!).ToList()), iterate, lineNumber, sourceFile); } } \ No newline at end of file