From f98d31842e2d93ad75d782e68dc84512e1c5dc5a Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sat, 9 Jan 2021 12:02:28 +0100 Subject: [PATCH] Fix workflow builder extensions return type --- .../Builders/IActivityBuilder.cs | 3 ++- .../Correlate/CorrelateBuilderExtensions.cs | 19 ++++++++++++++++ .../Correlate/SetVariableBuilderExtensions.cs | 19 ---------------- .../SetContextIdBuilderExtensions.cs | 12 +++++----- .../SetName/SetNameBuilderExtensions.cs | 12 +++++----- .../SetTransientVariableBuilderExtensions.cs | 22 +++++++++---------- .../SetVariableBuilderExtensions.cs | 22 +++++++++---------- .../SignalReceived.cs | 0 .../SignalReceivedBuilderExtensions.cs | 0 .../SignalReceivedTrigger.cs | 0 .../Elsa.Core/Builders/ActivityBuilder.cs | 8 ++++++- .../Builders/CompositeActivityBuilder.cs | 4 ++-- src/core/Elsa.Core/Builders/OutcomeBuilder.cs | 2 +- .../Elsa.Core/Elsa.Core.csproj.DotSettings | 1 + 14 files changed, 66 insertions(+), 58 deletions(-) create mode 100644 src/core/Elsa.Core/Activities/Primitives/Correlate/CorrelateBuilderExtensions.cs delete mode 100644 src/core/Elsa.Core/Activities/Primitives/Correlate/SetVariableBuilderExtensions.cs rename src/core/Elsa.Core/Activities/Signaling/Activities/{ReceiveSignal => SignalReceived}/SignalReceived.cs (100%) rename src/core/Elsa.Core/Activities/Signaling/Activities/{ReceiveSignal => SignalReceived}/SignalReceivedBuilderExtensions.cs (100%) rename src/core/Elsa.Core/Activities/Signaling/Activities/{ReceiveSignal => SignalReceived}/SignalReceivedTrigger.cs (100%) diff --git a/src/core/Elsa.Abstractions/Builders/IActivityBuilder.cs b/src/core/Elsa.Abstractions/Builders/IActivityBuilder.cs index 9e5710f11..dc70373da 100644 --- a/src/core/Elsa.Abstractions/Builders/IActivityBuilder.cs +++ b/src/core/Elsa.Abstractions/Builders/IActivityBuilder.cs @@ -13,7 +13,7 @@ namespace Elsa.Builders public string? DisplayName { get; set; } public string? Description { get; set; } IDictionary? PropertyValueProviders { get; } - bool PersistWorkflow { get; set; } + bool PersistWorkflowEnabled { get; set; } bool LoadWorkflowContextEnabled { get; set; } bool SaveWorkflowContextEnabled { get; set; } bool PersistOutputEnabled { get; set; } @@ -27,5 +27,6 @@ namespace Elsa.Builders IActivityBuilder WithDescription(string? value); IActivityBuilder LoadWorkflowContext(bool value = true); IActivityBuilder SaveWorkflowContext(bool value = true); + IActivityBuilder PersistWorkflow(bool value = true); } } \ No newline at end of file diff --git a/src/core/Elsa.Core/Activities/Primitives/Correlate/CorrelateBuilderExtensions.cs b/src/core/Elsa.Core/Activities/Primitives/Correlate/CorrelateBuilderExtensions.cs new file mode 100644 index 000000000..39663a837 --- /dev/null +++ b/src/core/Elsa.Core/Activities/Primitives/Correlate/CorrelateBuilderExtensions.cs @@ -0,0 +1,19 @@ +using System; +using System.Threading.Tasks; +using Elsa.Activities.Primitives; +using Elsa.Builders; +using Elsa.Services.Models; + +// ReSharper disable once CheckNamespace +namespace Elsa.Activities.ControlFlow +{ + public static class CorrelateBuilderExtensions + { + public static IActivityBuilder Correlate(this IBuilder builder, Action> setup) => builder.Then(setup); + public static IActivityBuilder Correlate(this IBuilder builder, Func> value) => builder.Correlate(activity => activity.Set(x => x.Value, value)); + public static IActivityBuilder Correlate(this IBuilder builder, Func value) => builder.Correlate(activity => activity.Set(x => x.Value, value)); + public static IActivityBuilder Correlate(this IBuilder builder, Func> value) => builder.Correlate(activity => activity.Set(x => x.Value, value)); + public static IActivityBuilder Correlate(this IBuilder builder, Func value) => builder.Correlate(activity => activity.Set(x => x.Value, value)); + public static IActivityBuilder Correlate(this IBuilder builder, string? value) => builder.Correlate(activity => activity.Set(x => x.Value, value)); + } +} \ No newline at end of file diff --git a/src/core/Elsa.Core/Activities/Primitives/Correlate/SetVariableBuilderExtensions.cs b/src/core/Elsa.Core/Activities/Primitives/Correlate/SetVariableBuilderExtensions.cs deleted file mode 100644 index 77b427833..000000000 --- a/src/core/Elsa.Core/Activities/Primitives/Correlate/SetVariableBuilderExtensions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Threading.Tasks; -using Elsa.Activities.Primitives; -using Elsa.Builders; -using Elsa.Services.Models; - -// ReSharper disable once CheckNamespace -namespace Elsa.Activities.ControlFlow -{ - public static class CorrelateBuilderExtensions - { - public static IOutcomeBuilder Correlate(this IBuilder builder, Action> setup) => builder.Then(setup).When(OutcomeNames.Done); - public static IOutcomeBuilder Correlate(this IBuilder builder, Func> value) => builder.Correlate(activity => activity.Set(x => x.Value, value)); - public static IOutcomeBuilder Correlate(this IBuilder builder, Func value) => builder.Correlate(activity => activity.Set(x => x.Value, value)); - public static IOutcomeBuilder Correlate(this IBuilder builder, Func> value) => builder.Correlate(activity => activity.Set(x => x.Value, value)); - public static IOutcomeBuilder Correlate(this IBuilder builder, Func value) => builder.Correlate(activity => activity.Set(x => x.Value, value)); - public static IOutcomeBuilder Correlate(this IBuilder builder, string? value) => builder.Correlate(activity => activity.Set(x => x.Value, value)); - } -} \ No newline at end of file diff --git a/src/core/Elsa.Core/Activities/Primitives/SetContextId/SetContextIdBuilderExtensions.cs b/src/core/Elsa.Core/Activities/Primitives/SetContextId/SetContextIdBuilderExtensions.cs index 96fe969d3..0df897ee2 100644 --- a/src/core/Elsa.Core/Activities/Primitives/SetContextId/SetContextIdBuilderExtensions.cs +++ b/src/core/Elsa.Core/Activities/Primitives/SetContextId/SetContextIdBuilderExtensions.cs @@ -9,11 +9,11 @@ namespace Elsa.Activities.ControlFlow { public static class SetContextIdBuilderExtensions { - public static IOutcomeBuilder SetContextId(this IBuilder builder, Action> setup) => builder.Then(setup).When(OutcomeNames.Done); - public static IOutcomeBuilder SetContextId(this IBuilder builder, Func> value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!)); - public static IOutcomeBuilder SetContextId(this IBuilder builder, Func value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!)); - public static IOutcomeBuilder SetContextId(this IBuilder builder, Func> value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!)); - public static IOutcomeBuilder SetContextId(this IBuilder builder, Func value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!)); - public static IOutcomeBuilder SetContextId(this IBuilder builder, string value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!)); + public static IActivityBuilder SetContextId(this IBuilder builder, Action> setup) => builder.Then(setup); + public static IActivityBuilder SetContextId(this IBuilder builder, Func> value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!)); + public static IActivityBuilder SetContextId(this IBuilder builder, Func value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!)); + public static IActivityBuilder SetContextId(this IBuilder builder, Func> value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!)); + public static IActivityBuilder SetContextId(this IBuilder builder, Func value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!)); + public static IActivityBuilder SetContextId(this IBuilder builder, string value) => builder.SetContextId(activity => activity.Set(x => x.ContextId, value!)); } } \ No newline at end of file diff --git a/src/core/Elsa.Core/Activities/Primitives/SetName/SetNameBuilderExtensions.cs b/src/core/Elsa.Core/Activities/Primitives/SetName/SetNameBuilderExtensions.cs index bf8b887af..554929d3d 100644 --- a/src/core/Elsa.Core/Activities/Primitives/SetName/SetNameBuilderExtensions.cs +++ b/src/core/Elsa.Core/Activities/Primitives/SetName/SetNameBuilderExtensions.cs @@ -8,11 +8,11 @@ namespace Elsa.Activities.Primitives { public static class SetNameBuilderExtensions { - public static IOutcomeBuilder SetName(this IBuilder builder, Action> setup) => builder.Then(setup).When(OutcomeNames.Done); - public static IOutcomeBuilder SetName(this IBuilder builder, Func> value) => builder.SetName(activity => activity.WithValue(value)); - public static IOutcomeBuilder SetName(this IBuilder builder, Func value) => builder.SetName(activity => activity.WithValue(value)); - public static IOutcomeBuilder SetName(this IBuilder builder, Func> value) => builder.SetName(activity => activity.WithValue(value)); - public static IOutcomeBuilder SetName(this IBuilder builder, Func value) => builder.SetName(activity => activity.WithValue(value)); - public static IOutcomeBuilder SetName(this IBuilder builder, string? value) => builder.SetName(activity => activity.WithValue(value)); + public static IActivityBuilder SetName(this IBuilder builder, Action> setup) => builder.Then(setup); + public static IActivityBuilder SetName(this IBuilder builder, Func> value) => builder.SetName(activity => activity.WithValue(value)); + public static IActivityBuilder SetName(this IBuilder builder, Func value) => builder.SetName(activity => activity.WithValue(value)); + public static IActivityBuilder SetName(this IBuilder builder, Func> value) => builder.SetName(activity => activity.WithValue(value)); + public static IActivityBuilder SetName(this IBuilder builder, Func value) => builder.SetName(activity => activity.WithValue(value)); + public static IActivityBuilder SetName(this IBuilder builder, string? value) => builder.SetName(activity => activity.WithValue(value)); } } \ No newline at end of file diff --git a/src/core/Elsa.Core/Activities/Primitives/SetTransientVariable/SetTransientVariableBuilderExtensions.cs b/src/core/Elsa.Core/Activities/Primitives/SetTransientVariable/SetTransientVariableBuilderExtensions.cs index c5decc3bb..938d50e50 100644 --- a/src/core/Elsa.Core/Activities/Primitives/SetTransientVariable/SetTransientVariableBuilderExtensions.cs +++ b/src/core/Elsa.Core/Activities/Primitives/SetTransientVariable/SetTransientVariableBuilderExtensions.cs @@ -8,42 +8,42 @@ namespace Elsa.Activities.Primitives { public static class SetTransientVariableBuilderExtensions { - public static IOutcomeBuilder SetTransientVariable(this IBuilder builder, Action> setup) => builder.Then(setup).When(OutcomeNames.Done); + public static IActivityBuilder SetTransientVariable(this IBuilder builder, Action> setup) => builder.Then(setup); - public static IOutcomeBuilder SetTransientVariable(this IBuilder builder, string name, Func> value) => + public static IActivityBuilder SetTransientVariable(this IBuilder builder, string name, Func> value) => builder.SetTransientVariable( activity => activity .Set(x => x.VariableName, name) .Set(x => x.Value, value)); - public static IOutcomeBuilder SetTransientVariable(this IBuilder builder, string name, Func value) => + public static IActivityBuilder SetTransientVariable(this IBuilder builder, string name, Func value) => builder.SetTransientVariable( activity => activity .Set(x => x.VariableName, name) .Set(x => x.Value, value)); - public static IOutcomeBuilder SetTransientVariable(this IBuilder builder, string name, Func> value) => + public static IActivityBuilder SetTransientVariable(this IBuilder builder, string name, Func> value) => builder.SetTransientVariable( activity => activity .Set(x => x.VariableName, name) .Set(x => x.Value, value)); - public static IOutcomeBuilder SetTransientVariable(this IBuilder builder, string name, Func value) => + public static IActivityBuilder SetTransientVariable(this IBuilder builder, string name, Func value) => builder.SetTransientVariable( activity => activity .Set(x => x.VariableName, name) .Set(x => x.Value, value)); - public static IOutcomeBuilder SetTransientVariable(this IBuilder builder, string name, object? value) => + public static IActivityBuilder SetTransientVariable(this IBuilder builder, string name, object? value) => builder.SetTransientVariable( activity => activity .Set(x => x.VariableName, name) .Set(x => x.Value, value)); - public static IOutcomeBuilder SetTransientVariable(this IBuilder builder, Func> value) => builder.SetTransientVariable(typeof(T).Name, async context => await value(context)); - public static IOutcomeBuilder SetTransientVariable(this IBuilder builder, Func value) => builder.SetTransientVariable(typeof(T).Name, context => value(context)); - public static IOutcomeBuilder SetTransientVariable(this IBuilder builder, Func> value) => builder.SetTransientVariable(typeof(T).Name, async () => await value()); - public static IOutcomeBuilder SetTransientVariable(this IBuilder builder, Func value) => builder.SetTransientVariable(typeof(T).Name, () => value()); - public static IOutcomeBuilder SetTransientVariable(this IBuilder builder, T value) => builder.SetTransientVariable(typeof(T).Name, value); + public static IActivityBuilder SetTransientVariable(this IBuilder builder, Func> value) => builder.SetTransientVariable(typeof(T).Name, async context => await value(context)); + public static IActivityBuilder SetTransientVariable(this IBuilder builder, Func value) => builder.SetTransientVariable(typeof(T).Name, context => value(context)); + public static IActivityBuilder SetTransientVariable(this IBuilder builder, Func> value) => builder.SetTransientVariable(typeof(T).Name, async () => await value()); + public static IActivityBuilder SetTransientVariable(this IBuilder builder, Func value) => builder.SetTransientVariable(typeof(T).Name, () => value()); + public static IActivityBuilder SetTransientVariable(this IBuilder builder, T value) => builder.SetTransientVariable(typeof(T).Name, value); } } \ No newline at end of file diff --git a/src/core/Elsa.Core/Activities/Primitives/SetVariable/SetVariableBuilderExtensions.cs b/src/core/Elsa.Core/Activities/Primitives/SetVariable/SetVariableBuilderExtensions.cs index 1b9703b74..79e020908 100644 --- a/src/core/Elsa.Core/Activities/Primitives/SetVariable/SetVariableBuilderExtensions.cs +++ b/src/core/Elsa.Core/Activities/Primitives/SetVariable/SetVariableBuilderExtensions.cs @@ -8,42 +8,42 @@ namespace Elsa.Activities.Primitives { public static class SetVariableBuilderExtensions { - public static IOutcomeBuilder SetVariable(this IBuilder builder, Action> setup) => builder.Then(setup).When(OutcomeNames.Done); + public static IActivityBuilder SetVariable(this IBuilder builder, Action> setup) => builder.Then(setup); - public static IOutcomeBuilder SetVariable(this IBuilder builder, string name, Func> value) => + public static IActivityBuilder SetVariable(this IBuilder builder, string name, Func> value) => builder.SetVariable( activity => activity .Set(x => x.VariableName, name) .Set(x => x.Value, value)); - public static IOutcomeBuilder SetVariable(this IBuilder builder, string name, Func value) => + public static IActivityBuilder SetVariable(this IBuilder builder, string name, Func value) => builder.SetVariable( activity => activity .Set(x => x.VariableName, name) .Set(x => x.Value, value)); - public static IOutcomeBuilder SetVariable(this IBuilder builder, string name, Func> value) => + public static IActivityBuilder SetVariable(this IBuilder builder, string name, Func> value) => builder.SetVariable( activity => activity .Set(x => x.VariableName, name) .Set(x => x.Value, value)); - public static IOutcomeBuilder SetVariable(this IBuilder builder, string name, Func value) => + public static IActivityBuilder SetVariable(this IBuilder builder, string name, Func value) => builder.SetVariable( activity => activity .Set(x => x.VariableName, name) .Set(x => x.Value, value)); - public static IOutcomeBuilder SetVariable(this IBuilder builder, string name, object? value) => + public static IActivityBuilder SetVariable(this IBuilder builder, string name, object? value) => builder.SetVariable( activity => activity .Set(x => x.VariableName, name) .Set(x => x.Value, value)); - public static IOutcomeBuilder SetVariable(this IBuilder builder, Func> value) => builder.SetVariable(typeof(T).Name, async context => await value(context)); - public static IOutcomeBuilder SetVariable(this IBuilder builder, Func value) => builder.SetVariable(typeof(T).Name, context => value(context)); - public static IOutcomeBuilder SetVariable(this IBuilder builder, Func> value) => builder.SetVariable(typeof(T).Name, async () => await value()); - public static IOutcomeBuilder SetVariable(this IBuilder builder, Func value) => builder.SetVariable(typeof(T).Name, () => value()); - public static IOutcomeBuilder SetVariable(this IBuilder builder, T value) => builder.SetVariable(typeof(T).Name, value); + public static IActivityBuilder SetVariable(this IBuilder builder, Func> value) => builder.SetVariable(typeof(T).Name, async context => await value(context)); + public static IActivityBuilder SetVariable(this IBuilder builder, Func value) => builder.SetVariable(typeof(T).Name, context => value(context)); + public static IActivityBuilder SetVariable(this IBuilder builder, Func> value) => builder.SetVariable(typeof(T).Name, async () => await value()); + public static IActivityBuilder SetVariable(this IBuilder builder, Func value) => builder.SetVariable(typeof(T).Name, () => value()); + public static IActivityBuilder SetVariable(this IBuilder builder, T value) => builder.SetVariable(typeof(T).Name, value); } } \ No newline at end of file diff --git a/src/core/Elsa.Core/Activities/Signaling/Activities/ReceiveSignal/SignalReceived.cs b/src/core/Elsa.Core/Activities/Signaling/Activities/SignalReceived/SignalReceived.cs similarity index 100% rename from src/core/Elsa.Core/Activities/Signaling/Activities/ReceiveSignal/SignalReceived.cs rename to src/core/Elsa.Core/Activities/Signaling/Activities/SignalReceived/SignalReceived.cs diff --git a/src/core/Elsa.Core/Activities/Signaling/Activities/ReceiveSignal/SignalReceivedBuilderExtensions.cs b/src/core/Elsa.Core/Activities/Signaling/Activities/SignalReceived/SignalReceivedBuilderExtensions.cs similarity index 100% rename from src/core/Elsa.Core/Activities/Signaling/Activities/ReceiveSignal/SignalReceivedBuilderExtensions.cs rename to src/core/Elsa.Core/Activities/Signaling/Activities/SignalReceived/SignalReceivedBuilderExtensions.cs diff --git a/src/core/Elsa.Core/Activities/Signaling/Activities/ReceiveSignal/SignalReceivedTrigger.cs b/src/core/Elsa.Core/Activities/Signaling/Activities/SignalReceived/SignalReceivedTrigger.cs similarity index 100% rename from src/core/Elsa.Core/Activities/Signaling/Activities/ReceiveSignal/SignalReceivedTrigger.cs rename to src/core/Elsa.Core/Activities/Signaling/Activities/SignalReceived/SignalReceivedTrigger.cs diff --git a/src/core/Elsa.Core/Builders/ActivityBuilder.cs b/src/core/Elsa.Core/Builders/ActivityBuilder.cs index d486753d5..510d57a5c 100644 --- a/src/core/Elsa.Core/Builders/ActivityBuilder.cs +++ b/src/core/Elsa.Core/Builders/ActivityBuilder.cs @@ -27,7 +27,7 @@ namespace Elsa.Builders public string? Name { get; set; } public string? DisplayName { get; set; } public string? Description { get; set; } - public bool PersistWorkflow { get; set; } + public bool PersistWorkflowEnabled { get; set; } public bool LoadWorkflowContextEnabled { get; set; } public bool SaveWorkflowContextEnabled { get; set; } public bool PersistOutputEnabled { get; set; } @@ -102,5 +102,11 @@ namespace Elsa.Builders PersistOutputEnabled = value; return this; } + + public IActivityBuilder PersistWorkflow(bool value) + { + PersistWorkflowEnabled = value; + return this; + } } } \ No newline at end of file diff --git a/src/core/Elsa.Core/Builders/CompositeActivityBuilder.cs b/src/core/Elsa.Core/Builders/CompositeActivityBuilder.cs index 6af2a7805..fbf7eac85 100644 --- a/src/core/Elsa.Core/Builders/CompositeActivityBuilder.cs +++ b/src/core/Elsa.Core/Builders/CompositeActivityBuilder.cs @@ -195,8 +195,8 @@ namespace Elsa.Builders { var isComposite = typeof(CompositeActivity).IsAssignableFrom(builder.ActivityType); return isComposite - ? new CompositeActivityBlueprint(builder.ActivityId, parent, builder.Name, builder.DisplayName, builder.Description, builder.ActivityType.Name, builder.PersistWorkflow, builder.LoadWorkflowContextEnabled, builder.SaveWorkflowContextEnabled, builder.PersistOutputEnabled) - : new ActivityBlueprint(builder.ActivityId, parent, builder.Name, builder.DisplayName, builder.Description, builder.ActivityType.Name, builder.PersistWorkflow, builder.LoadWorkflowContextEnabled, builder.SaveWorkflowContextEnabled, builder.PersistOutputEnabled); + ? new CompositeActivityBlueprint(builder.ActivityId, parent, builder.Name, builder.DisplayName, builder.Description, builder.ActivityType.Name, builder.PersistWorkflowEnabled, builder.LoadWorkflowContextEnabled, builder.SaveWorkflowContextEnabled, builder.PersistOutputEnabled) + : new ActivityBlueprint(builder.ActivityId, parent, builder.Name, builder.DisplayName, builder.Description, builder.ActivityType.Name, builder.PersistWorkflowEnabled, builder.LoadWorkflowContextEnabled, builder.SaveWorkflowContextEnabled, builder.PersistOutputEnabled); } } } \ No newline at end of file diff --git a/src/core/Elsa.Core/Builders/OutcomeBuilder.cs b/src/core/Elsa.Core/Builders/OutcomeBuilder.cs index 2749fbd4f..25c954d37 100644 --- a/src/core/Elsa.Core/Builders/OutcomeBuilder.cs +++ b/src/core/Elsa.Core/Builders/OutcomeBuilder.cs @@ -7,7 +7,7 @@ namespace Elsa.Builders { public class OutcomeBuilder : IOutcomeBuilder { - public OutcomeBuilder(ICompositeActivityBuilder workflowBuilder, IActivityBuilder source, string outcome = "Done") + public OutcomeBuilder(ICompositeActivityBuilder workflowBuilder, IActivityBuilder source, string outcome = OutcomeNames.Done) { WorkflowBuilder = workflowBuilder; Source = source; diff --git a/src/core/Elsa.Core/Elsa.Core.csproj.DotSettings b/src/core/Elsa.Core/Elsa.Core.csproj.DotSettings index 915674e13..3d434196f 100644 --- a/src/core/Elsa.Core/Elsa.Core.csproj.DotSettings +++ b/src/core/Elsa.Core/Elsa.Core.csproj.DotSettings @@ -5,6 +5,7 @@ True True True + True True True True \ No newline at end of file