From cccf5c831d3bc3dd8ada84f4eea414b2448c4735 Mon Sep 17 00:00:00 2001 From: Andale-online Date: Thu, 14 Nov 2019 10:06:02 +0100 Subject: [PATCH] Added else to switch (#149) Closes #136 --- .../Activities/Switch.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/activities/Elsa.Activities.ControlFlow/Activities/Switch.cs b/src/activities/Elsa.Activities.ControlFlow/Activities/Switch.cs index 2e1382023..f93b5f95b 100644 --- a/src/activities/Elsa.Activities.ControlFlow/Activities/Switch.cs +++ b/src/activities/Elsa.Activities.ControlFlow/Activities/Switch.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System.Collections.Generic; +using System.Linq; using System.Threading; using System.Threading.Tasks; using Elsa.Attributes; @@ -21,10 +22,14 @@ namespace Elsa.Activities.ControlFlow.Activities { private readonly IWorkflowExpressionEvaluator expressionEvaluator; + public Switch(IWorkflowExpressionEvaluator expressionEvaluator) { this.expressionEvaluator = expressionEvaluator; - Cases = new List(); + Cases = new List() + { + "default" + }; } [ActivityProperty(Hint = "The expression to evaluate. The evaluated value will be used to switch on.")] @@ -46,7 +51,15 @@ namespace Elsa.Activities.ControlFlow.Activities CancellationToken cancellationToken) { var result = await expressionEvaluator.EvaluateAsync(Expression, workflowContext, cancellationToken); - return Outcome(result); + + if (Cases.Contains(result) || !Cases.Contains("default")) + { + return Outcome(result); + } + else + { + return Outcome("default"); + } } } } \ No newline at end of file