From 9f486d9e13ef9eda266feedb3c37d05b49dbfc27 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Mon, 26 Feb 2024 15:40:10 +0100 Subject: [PATCH 1/2] Improve handling of 'Default' case in switch providers Added check in both FlowSwitchPortProvider and SwitchPortProvider classes to prevent adding a 'Default' case if one already exists. This prevents possible duplicate case errors. Also, applied JetBrains.Annotations and properly listed cases to enhance the readability and performance of the code. --- .../Providers/FlowSwitchPortProvider.cs | 7 ++++++- .../Providers/SwitchPortProvider.cs | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/modules/Elsa.Studio.ActivityPortProviders/Providers/FlowSwitchPortProvider.cs b/src/modules/Elsa.Studio.ActivityPortProviders/Providers/FlowSwitchPortProvider.cs index a8089898..2f96625f 100644 --- a/src/modules/Elsa.Studio.ActivityPortProviders/Providers/FlowSwitchPortProvider.cs +++ b/src/modules/Elsa.Studio.ActivityPortProviders/Providers/FlowSwitchPortProvider.cs @@ -5,12 +5,14 @@ using Elsa.Api.Client.Shared.Models; using Elsa.Studio.Workflows.Domain.Contexts; using Elsa.Studio.Workflows.Domain.Providers; +using JetBrains.Annotations; namespace Elsa.Studio.ActivityPortProviders.Providers; /// /// Provides ports for the FlowSwitch activity based on its cases. /// +[UsedImplicitly] public class FlowSwitchPortProvider : ActivityPortProviderBase { /// @@ -23,7 +25,7 @@ public override IEnumerable GetPorts(PortProviderContext context) { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; - + var cases = context.Activity.GetProperty>(options, "cases") ?? new List(); foreach (var @case in cases) @@ -36,6 +38,9 @@ public override IEnumerable GetPorts(PortProviderContext context) }; } + if (cases.Any(x => x.Label == "Default")) + yield break; + yield return new Port { Name = "Default", diff --git a/src/modules/Elsa.Studio.ActivityPortProviders/Providers/SwitchPortProvider.cs b/src/modules/Elsa.Studio.ActivityPortProviders/Providers/SwitchPortProvider.cs index 5d6c4c6c..e0dd624b 100644 --- a/src/modules/Elsa.Studio.ActivityPortProviders/Providers/SwitchPortProvider.cs +++ b/src/modules/Elsa.Studio.ActivityPortProviders/Providers/SwitchPortProvider.cs @@ -18,7 +18,7 @@ public class SwitchPortProvider : ActivityPortProviderBase /// public override IEnumerable GetPorts(PortProviderContext context) { - var cases = GetCases(context.Activity); + var cases = GetCases(context.Activity).ToList(); foreach (var @case in cases) { @@ -31,6 +31,9 @@ public override IEnumerable GetPorts(PortProviderContext context) }; } + if (cases.Any(x => GetLabel(x) == "Default")) + yield break; + yield return new Port { Name = "Default", From 2762d49ae6d0c67314d7dd6d7a74bb14926a5fa3 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Mon, 26 Feb 2024 15:40:31 +0100 Subject: [PATCH 2/2] Add 'issue/*' branch to GitHub workflow The update allows for automatic running of workflows on branches labeled 'issue/*'. This ensures tests and build processes are executed whenever there is a new push to any 'issue/*' branch, improving our update and bug fix pipeline. --- .github/workflows/packages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index af32dc99..d1995a03 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -5,6 +5,7 @@ on: branches: - 'main' - 'feature/*' + - 'issue/*' - 'enhancement/*' - 'patch/*' - 'fix/*'