Example #1
0
 void Debug(IDSFDataObject dataObject, string firstOrDefault, Dev2Switch ds)
 {
     try
     {
         if (dataObject.IsDebugMode())
         {
             List <DebugItem> result    = new List <DebugItem>();
             DebugItem        itemToAdd = new DebugItem();
             var debugResult            = new DebugItemWarewolfAtomResult(firstOrDefault, "", ds.SwitchVariable, "", "Switch on", "", "=");
             itemToAdd.AddRange(debugResult.GetDebugItemResult());
             result.Add(itemToAdd);
             _debugInputs = result;
             DispatchDebugState(dataObject, StateType.Before);
             DispatchDebugState(dataObject, StateType.After);
             if (_inner != null)
             {
                 _inner.SetDebugInputs(_debugInputs);
             }
         }
     }
     // ReSharper disable EmptyGeneralCatchClause
     catch
     // ReSharper restore EmptyGeneralCatchClause
     {
     }
 }
Example #2
0
        IEnumerable <IDev2Activity> ParseSwitch(FlowSwitch <string> switchFlowSwitch, List <IDev2Activity> seenActivities)
        {
            var activity = switchFlowSwitch.Expression as DsfFlowSwitchActivity;

            if (activity != null)
            {
                if (seenActivities.Contains(activity))
                {
                    return(new List <IDev2Activity> {
                        activity
                    });
                }

                var        val = new StringBuilder(Dev2DecisionStack.ExtractModelFromWorkflowPersistedData(activity.ExpressionText));
                Dev2Switch ds  = new Dev2Switch {
                    SwitchVariable = val.ToString()
                };
                var swi = new DsfSwitch(activity);
                if (!seenActivities.Contains(activity))
                {
                    seenActivities.Add(swi);
                }
                swi.Switches = switchFlowSwitch.Cases.Select(a => new Tuple <string, IDev2Activity>(a.Key, ParseTools(a.Value, seenActivities).FirstOrDefault())).ToDictionary(a => a.Item1, a => a.Item2);
                swi.Default  = ParseTools(switchFlowSwitch.Default, seenActivities);
                swi.Switch   = ds.SwitchVariable;


                return(new List <IDev2Activity>
                {
                    swi
                });
            }
            throw new Exception("Invalid activity");
        }
Example #3
0
        public void ActivityHelper_InjectExpression_Dev2SwitchIsNull_ReturnNull()
        {
            //---------------Set up test pack-------------------
            var viewModel         = new DecisionDesignerViewModel(CreateModelItem());
            var dev2DecisionStack = new Dev2DecisionStack()
            {
                DisplayText  = "",
                FalseArmText = "",
                TrueArmText  = "",
                Version      = "2",
                Mode         = Dev2DecisionMode.AND
            };

            dev2DecisionStack.TheStack = new List <Dev2Decision>();
            var decisionExpressionMessage = new ConfigureDecisionExpressionMessage();

            viewModel.Handle(decisionExpressionMessage);

            var mySwitch = new Dev2Switch();

            mySwitch = null;

            var expressionText1 = string.Join("", GlobalConstants.InjectedSwitchDataFetch,
                                              "(\"", "aaaaaaa", "\",",
                                              GlobalConstants.InjectedDecisionDataListVariable,
                                              ")");
            var expressionText = viewModel.ModelItem.Properties[expressionText1];

            //------------Setup for test--------------------------
            var expr = ActivityHelper.InjectExpression(mySwitch, expressionText);

            Assert.IsNull(expr);
        }
Example #4
0
        public void Debug_GivenDataObject_ShouldSetInnerBugOuputs_IncrementsDebugInputs()
        {
            //---------------Set up test pack-------------------
            //string displayName, IDebugDispatcher debugDispatcher, bool isAsync = false
            var switchActivity = new DsfFlowSwitchActivity("MyName", new Mock <IDebugDispatcher>().Object, It.IsAny <bool>())
            {
                UniqueID       = Guid.NewGuid().ToString(),
                ExpressionText = ""
            };

            var activity = new DsfSwitch(switchActivity)
            {
                Result = "[[MyResult]]"
            };
            var dataObject = new Mock <IDSFDataObject>();

            dataObject.Setup(o => o.IsDebugMode()).Returns(true);
            var obj = new Warewolf.Testing.PrivateObject(activity);
            //---------------Assert Precondition----------------
            var getDebugInputs = activity.GetDebugInputs(new Mock <IExecutionEnvironment>().Object, 1);

            Assert.AreEqual(0, getDebugInputs.Count);
            //---------------Execute Test ----------------------
            var result   = "[[variable]]";
            var mySwitch = new Dev2Switch();

            obj.Invoke("Debug", dataObject.Object, result, mySwitch);
            //---------------Test Result -----------------------
            getDebugInputs = activity.GetDebugInputs(new Mock <IExecutionEnvironment>().Object, 1);
            Assert.AreEqual(1, getDebugInputs.Count);
        }
Example #5
0
 protected override void ExecuteTool(IDSFDataObject dataObject, int update)
 {
     _debugOutputs.Clear();
     _debugInputs.Clear();
     NextNodes = new List <IDev2Activity>();
     try
     {
         var ds = new Dev2Switch {
             SwitchVariable = Switch
         };
         var firstOrDefault = dataObject.Environment.EvalAsListOfStrings(ds.SwitchVariable, update).FirstOrDefault();
         if (dataObject.IsDebugMode())
         {
             InitializeDebug(dataObject);
             Debug(dataObject, firstOrDefault, ds);
             DispatchDebugState(dataObject, StateType.Before, update);
         }
         if (firstOrDefault != null)
         {
             NewNextNodes(dataObject, firstOrDefault);
         }
     }
     catch (Exception err)
     {
         dataObject.Environment.Errors.Add(err.Message);
     }
     finally
     {
         if (dataObject.IsDebugMode())
         {
             DispatchDebugState(dataObject, StateType.After, update);
             _debugOutputs = new List <DebugItem>();
         }
     }
 }
Example #6
0
        public void ActivityHelper_WithKeyProperty_SetSwitchKeyProperty_Dev2Switch()
        {
            var uniqueId     = Guid.NewGuid().ToString();
            var calcActivity = new DsfCalculateActivity {
                UniqueID = uniqueId
            };
            var flowStep = new FlowStep {
                Action = calcActivity
            };

            //---------------Set up test pack-------------------
            using (var viewModel = new SwitchDesignerViewModel(CreateSwitchModelItem(flowStep), "Switch"))
            {
                var mySwitch = new Dev2Switch
                {
                    SwitchExpression = "[[a]]"
                };

                var parentNodeProperty = viewModel.ModelItem.Properties["Cases"].Dictionary;

                //------------Setup for test--------------------------
                var switchCaseFirst = ModelItemUtils.CreateModelItem(parentNodeProperty.First());
                var switchCaseLast  = ModelItemUtils.CreateModelItem(parentNodeProperty.Last());
                ActivityHelper.SetSwitchKeyProperty(mySwitch, switchCaseFirst);

                var modelItemFirst = switchCaseFirst.Properties["Value"].Value.Properties["Action"].Value;
                var modelItemLast  = switchCaseLast.Properties["Value"].Value.Properties["Action"].Value;

                Assert.AreEqual(uniqueId, modelItemFirst.Properties["UniqueID"].ComputedValue);
                Assert.IsNull(modelItemLast);
            }
        }
Example #7
0
        public override IDev2Activity Execute(IDSFDataObject dataObject, int update)
        {
            _debugOutputs.Clear();
            _debugInputs.Clear();

            try
            {
                Dev2Switch ds = new Dev2Switch {
                    SwitchVariable = Switch
                };
                var firstOrDefault = dataObject.Environment.EvalAsListOfStrings(ds.SwitchVariable, update).FirstOrDefault();


                Debug(dataObject, firstOrDefault, ds);
                if (firstOrDefault != null)
                {
                    var a = firstOrDefault;
                    if (Switches.ContainsKey(a))
                    {
                        return(Switches[a]);
                    }
                    if (Default != null)
                    {
                        var activity = Default.FirstOrDefault();
                        return(activity);
                    }
                }
            }
            catch (Exception err)
            {
                dataObject.Environment.Errors.Add(err.Message);
            }

            return(null);
        }
Example #8
0
        public void ConfigureSwitchExpression(ConfigureSwitchExpressionMessage args)
        {
            var expression = ConfigureActivity <DsfFlowSwitchActivity>(args.ModelItem, GlobalConstants.SwitchExpressionPropertyText, args.IsNew);

            if (expression == null)
            {
                return;
            }

            var expressionText = expression.Properties[GlobalConstants.SwitchExpressionTextPropertyText];

            Dev2Switch ds;

            if (expressionText != null && expressionText.Value != null)
            {
                ds = new Dev2Switch();
                var val = ActivityHelper.ExtractData(expressionText.Value.ToString());
                if (!string.IsNullOrEmpty(val))
                {
                    ds.SwitchVariable = val;
                }
            }
            else
            {
                ds = DataListConstants.DefaultSwitch;
            }

            var displayName = args.ModelItem.Properties[GlobalConstants.DisplayNamePropertyText];

            if (displayName != null && displayName.Value != null)
            {
                ds.DisplayText = displayName.Value.ToString();
            }

            var webModel = JsonConvert.SerializeObject(ds);

            // now invoke the wizard ;)
            _callBackHandler = StartSwitchDropWizard(args.EnvironmentModel, webModel);

            // Wizard finished...
            // Now Fetch from DL and push the model data into the workflow
            try
            {
                var resultSwitch = JsonConvert.DeserializeObject <Dev2Switch>(_callBackHandler.ModelData);
                ActivityHelper.InjectExpression(resultSwitch, expressionText);

                // PBI 9220 - 2013.04.29 - TWR
                ActivityHelper.SetDisplayName(args.ModelItem, resultSwitch); // MUST use args.ModelItem otherwise it won't be visible!
            }
            catch
            {
                _popupController.Show(GlobalConstants.SwitchWizardErrorString,
                                      GlobalConstants.SwitchWizardErrorHeading, MessageBoxButton.OK,
                                      MessageBoxImage.Error, null);
            }
        }
Example #9
0
        public static void SetSwitchKeyProperty(Dev2Switch ds, ModelItem switchCase)
        {
            if (ds != null)
            {
                ModelProperty keyProperty = switchCase.Properties["Key"];

                if (keyProperty != null)
                {
                    keyProperty.SetValue(ds.SwitchVariable);
                }
            }
        }
Example #10
0
        public static void SetSwitchKeyProperty(Dev2Switch ds, ModelItem switchCase)
        {
            if (ds != null)
            {
                var keyProperty = switchCase.Properties["Key"];

                if (keyProperty != null)
                {
                    keyProperty.SetValue(ds.SwitchExpression);
                }
            }
        }
Example #11
0
        private Guid generateGuidSwitch()
        {
            IDataListCompiler testCompiler = DataListFactory.CreateDataListCompiler();

            var stack = new Dev2Switch()
            {
                SwitchVariable = ""
            };

            var  error   = new ErrorResultTO();
            Guid MyModel = testCompiler.PushSystemModelToDataList(stack, out error);

            return(MyModel);
        }
Example #12
0
        public static string InjectExpression(Dev2Switch ds, ModelProperty activityExpression)
        {
            if (ds == null)
            {
                return(null);
            }
            var expressionToInject = String.Join("", GlobalConstants.InjectedSwitchDataFetch,
                                                 "(\"", ds.SwitchVariable, "\",",
                                                 GlobalConstants.InjectedDecisionDataListVariable,
                                                 ")");

            if (activityExpression != null)
            {
                activityExpression.SetValue(expressionToInject);
            }
            return(expressionToInject);
        }
Example #13
0
        public void Dev2Switch_SetProperties_AreEqual_ExpectTrue()
        {
            //-----------------------Arrange--------------------
            //-----------------------Act------------------------
            var dev2Switch = new Dev2Switch()
            {
                SwitchVariable   = "TestSwitchVariable",
                SwitchExpression = "TestSwitchExpression",
                DisplayText      = "TestDisplayText"
            };

            //-----------------------Assert---------------------
            Assert.AreEqual(Dev2ModelType.Dev2Switch, dev2Switch.ModelName);
            Assert.AreEqual("TestSwitchVariable", dev2Switch.SwitchVariable);
            Assert.AreEqual("TestSwitchExpression", dev2Switch.SwitchExpression);
            Assert.AreEqual("TestDisplayText", dev2Switch.DisplayText);
        }
Example #14
0
        void Initialize(string display)
        {
            var           expressionText  = ModelItem.Properties[GlobalConstants.SwitchExpressionTextPropertyText];
            ModelProperty switchCaseValue = ModelItem.Properties["Case"];
            Dev2Switch    ds;

            if (expressionText?.Value != null)
            {
                ds = new Dev2Switch();
                var val = ActivityHelper.ExtractData(expressionText.Value.ToString());
                if (!string.IsNullOrEmpty(val))
                {
                    ds.SwitchVariable = val;
                }
            }
            else
            {
                ds = DataListConstants.DefaultSwitch;
            }
            if (string.IsNullOrEmpty(display))
            {
                var displayName = ModelItem.Properties[GlobalConstants.DisplayNamePropertyText];
                if (displayName?.Value != null)
                {
                    ds.DisplayText = displayName.Value.ToString();
                }
            }
            else
            {
                ds.DisplayText = display;
            }
            if (switchCaseValue != null)
            {
                string val = switchCaseValue.ComputedValue.ToString();
                ds.SwitchExpression = val;
            }

            SwitchVariable   = ds.SwitchVariable;
            SwitchExpression = ds.SwitchExpression;
            DisplayText      = ds.DisplayText;
            if (DisplayText != SwitchVariable && DisplayText != "Switch")
            {
                _hascustomeDisplayText = true;
            }
        }
Example #15
0
        protected override void ExecuteTool(IDSFDataObject dataObject)
        {
            _debugOutputs.Clear();
            _debugInputs.Clear();

            try
            {
                Dev2Switch ds = new Dev2Switch {
                    SwitchVariable = Switch
                };
                var firstOrDefault = dataObject.Environment.EvalAsListOfStrings(ds.SwitchVariable).FirstOrDefault();


                Debug(dataObject, firstOrDefault, ds);
                if (firstOrDefault != null)
                {
                    var a = firstOrDefault;
                    if (Switches.ContainsKey(a))
                    {
                        Switches[a].Execute(dataObject);
                    }
                    else
                    {
                        if (Default != null)
                        {
                            var activity = Default.FirstOrDefault();
                            if (activity != null)
                            {
                                activity.Execute(dataObject);
                            }
                        }
                    }
                }
            }
            catch (Exception err)
            {
                dataObject.Environment.Errors.Add(err.Message);
            }
            finally
            {
            }
        }
Example #16
0
        void Debug(IDSFDataObject dataObject, string firstOrDefault, Dev2Switch ds)
        {
            try
            {
                if (dataObject.IsDebugMode())
                {
                    var result      = new List <DebugItem>();
                    var itemToAdd   = new DebugItem();
                    var debugResult = new DebugItemWarewolfAtomResult(firstOrDefault, "", ds.SwitchVariable, "", "Switch on", "", "=");
                    itemToAdd.AddRange(debugResult.GetDebugItemResult());
                    result.Add(itemToAdd);
                    _debugInputs = result;

                    if (Inner != null)
                    {
                        Inner.SetDebugInputs(_debugInputs);
                    }
                }
            }
            catch (Exception e)
            {
                Dev2Logger.Warn(e.Message, GlobalConstants.WarewolfWarn);
            }
        }
Example #17
0
        // Travis.Frisinger - 28.01.2013 : Amended for Debug
        public override List <DebugItem> GetDebugInputs(IExecutionEnvironment env, int update)
        {
            if (_debugInputs != null && _debugInputs.Count > 0)
            {
                return(_debugInputs);
            }
            List <IDebugItem> result = new List <IDebugItem>();
            var allErrors            = new ErrorResultTO();

            var val = new StringBuilder(Dev2DecisionStack.ExtractModelFromWorkflowPersistedData(ExpressionText));

            try
            {
                Dev2DecisionStack dds = DataListUtil.ConvertFromJsonToModel <Dev2DecisionStack>(val);
                ErrorResultTO     error;
                string            userModel = dds.GenerateUserFriendlyModel(env, dds.Mode, out error);
                allErrors.MergeErrors(error);

                foreach (Dev2Decision dev2Decision in dds.TheStack)
                {
                    AddInputDebugItemResultsAfterEvaluate(result, ref userModel, env, dds.Mode, dev2Decision.Col1, out error);
                    allErrors.MergeErrors(error);
                    AddInputDebugItemResultsAfterEvaluate(result, ref userModel, env, dds.Mode, dev2Decision.Col2, out error);
                    allErrors.MergeErrors(error);
                    AddInputDebugItemResultsAfterEvaluate(result, ref userModel, env, dds.Mode, dev2Decision.Col3, out error);
                    allErrors.MergeErrors(error);
                }

                var itemToAdd = new DebugItem();

                userModel = userModel.Replace("OR", " OR\r\n")
                            .Replace("AND", " AND\r\n")
                            .Replace("\r\n ", "\r\n")
                            .Replace("\r\n\r\n", "\r\n")
                            .Replace("  ", " ");

                AddDebugItem(new DebugItemStaticDataParams(userModel, "Statement"), itemToAdd);
                result.Add(itemToAdd);

                itemToAdd = new DebugItem();
                AddDebugItem(new DebugItemStaticDataParams(dds.Mode == Dev2DecisionMode.AND ? "YES" : "NO", "Require All decisions to be True"), itemToAdd);
                result.Add(itemToAdd);
            }
            catch (JsonSerializationException)
            {
                Dev2Switch ds = new Dev2Switch {
                    SwitchVariable = val.ToString()
                };
                DebugItem itemToAdd = new DebugItem();

                var a           = env.Eval(ds.SwitchVariable, 0);
                var debugResult = new DebugItemWarewolfAtomResult(ExecutionEnvironment.WarewolfEvalResultToString(a), "", ds.SwitchVariable, "", "Switch on", "", "=");
                itemToAdd.AddRange(debugResult.GetDebugItemResult());
                result.Add(itemToAdd);
            }
            catch (Exception e)
            {
                allErrors.AddError(e.Message);
            }
            finally
            {
                if (allErrors.HasErrors())
                {
                    var serviceName = GetType().Name;
                    DisplayAndWriteError(serviceName, allErrors);
                }
            }

            return(result.Select(a => a as DebugItem).ToList());
        }
Example #18
0
        protected override void ExecuteTool(IDSFDataObject dataObject, int update)
        {
            _debugOutputs.Clear();
            _debugInputs.Clear();
            var startTime = DateTime.Now;

            try
            {
                Dev2Switch ds = new Dev2Switch {
                    SwitchVariable = Switch
                };
                var firstOrDefault = dataObject.Environment.EvalAsListOfStrings(ds.SwitchVariable, update).FirstOrDefault();
                if (dataObject.IsDebugMode())
                {
                    InitializeDebug(dataObject);
                    Debug(dataObject, firstOrDefault, ds);
                    DispatchDebugState(dataObject, StateType.Before, update);
                }
                if (firstOrDefault != null)
                {
                    var a = firstOrDefault;
                    if (Switches.ContainsKey(a))
                    {
                        Result = a;
                        if (dataObject.IsDebugMode())
                        {
                            DebugOutput(dataObject);
                        }

                        NextNodes = new List <IDev2Activity> {
                            Switches[a]
                        };
                    }
                    else
                    {
                        if (Default != null)
                        {
                            Result = "Default";
                            var activity = Default.FirstOrDefault();
                            if (dataObject.IsDebugMode())
                            {
                                DebugOutput(dataObject);
                            }
                            NextNodes = new List <IDev2Activity> {
                                activity
                            };
                        }
                    }
                }
            }
            catch (Exception err)
            {
                dataObject.Environment.Errors.Add(err.Message);
            }
            finally
            {
                if (dataObject.IsDebugMode())
                {
                    DispatchDebugState(dataObject, StateType.After, update);
                    _debugOutputs = new List <DebugItem>();
                }
            }
        }
Example #19
0
        public void ActivityHelper_InjectExpression_Dev2Switch()
        {
            //---------------Set up test pack-------------------
            var serializer        = new Dev2JsonSerializer();
            var viewModel         = new DecisionDesignerViewModel(CreateModelItem());
            var dev2DecisionStack = new Dev2DecisionStack()
            {
                DisplayText  = "",
                FalseArmText = "",
                TrueArmText  = "",
                Version      = "2",
                Mode         = Dev2DecisionMode.AND
            };

            dev2DecisionStack.TheStack = new List <Dev2Decision>();
            var decisionExpressionMessage = new ConfigureDecisionExpressionMessage();

            viewModel.Handle(decisionExpressionMessage);

            var mySwitch = new Dev2Switch();

            //------------Setup for test--------------------------
            var testAct = new DsfFlowSwitchActivity {
                ExpressionText = ""
            };
            var prop = new Mock <ModelProperty>();

            prop.Setup(p => p.ComputedValue).Returns(testAct);

            ActivityHelper.InjectExpression(mySwitch, prop.Object);

            //------------Assert Results-------------------------
            var act = new DsfDecision {
                Conditions = dev2DecisionStack, And = true
            };
            var stateItems = act.GetState();

            Assert.AreEqual(5, stateItems.Count());
            var expectedResults = new[]
            {
                new StateVariable
                {
                    Name  = "Conditions",
                    Type  = StateVariable.StateType.Input,
                    Value = serializer.Serialize(dev2DecisionStack)
                },
                new StateVariable
                {
                    Name  = "And",
                    Type  = StateVariable.StateType.Input,
                    Value = "True"
                },
                new StateVariable
                {
                    Name  = "Result",
                    Type  = StateVariable.StateType.Output,
                    Value = null
                },
                new StateVariable
                {
                    Name  = "TrueArm",
                    Type  = StateVariable.StateType.Output,
                    Value = ActivityHelper.GetSerializedStateValueFromCollection(act.TrueArm?.ToList())
                },
                new StateVariable
                {
                    Name  = "FalseArm",
                    Type  = StateVariable.StateType.Output,
                    Value = ActivityHelper.GetSerializedStateValueFromCollection(act.FalseArm?.ToList())
                }
            };

            var iter = act.GetState().Select((item, index) => new
            {
                value       = item,
                expectValue = expectedResults[index]
            });

            Assert.AreEqual(expectedResults.Length, iter.Count());
            foreach (var entry in iter)
            {
                Assert.AreEqual(entry.expectValue.Name, entry.value.Name);
                Assert.AreEqual(entry.expectValue.Type, entry.value.Type);
                Assert.AreEqual(entry.expectValue.Value, entry.value.Value);
            }
        }
        // Travis.Frisinger - 28.01.2013 : Amended for Debug
        public override List <DebugItem> GetDebugInputs(IBinaryDataList dataList)
        {
            List <IDebugItem> result   = new List <IDebugItem>();
            IDataListCompiler compiler = DataListFactory.CreateDataListCompiler();
            var allErrors = new ErrorResultTO();

            var val = new StringBuilder(Dev2DecisionStack.ExtractModelFromWorkflowPersistedData(ExpressionText));

            try
            {
                Dev2DecisionStack dds = compiler.ConvertFromJsonToModel <Dev2DecisionStack>(val);
                ErrorResultTO     error;
                string            userModel = dds.GenerateUserFriendlyModel(dataList.UID, dds.Mode, out error);
                allErrors.MergeErrors(error);

                foreach (Dev2Decision dev2Decision in dds.TheStack)
                {
                    AddInputDebugItemResultsAfterEvaluate(result, ref userModel, dataList, dds.Mode, dev2Decision.Col1, out error);
                    allErrors.MergeErrors(error);
                    AddInputDebugItemResultsAfterEvaluate(result, ref userModel, dataList, dds.Mode, dev2Decision.Col2, out error);
                    allErrors.MergeErrors(error);
                    AddInputDebugItemResultsAfterEvaluate(result, ref userModel, dataList, dds.Mode, dev2Decision.Col3, out error);
                    allErrors.MergeErrors(error);
                }

                var itemToAdd = new DebugItem();

                userModel = userModel.Replace("OR", " OR\r\n")
                            .Replace("AND", " AND\r\n")
                            .Replace("\r\n ", "\r\n")
                            .Replace("\r\n\r\n", "\r\n")
                            .Replace("  ", " ");

                AddDebugItem(new DebugItemStaticDataParams(userModel, "Statement"), itemToAdd);
                result.Add(itemToAdd);

                itemToAdd = new DebugItem();
                AddDebugItem(new DebugItemStaticDataParams(dds.Mode == Dev2DecisionMode.AND ? "YES" : "NO", "Require All decisions to be True"), itemToAdd);
                result.Add(itemToAdd);
            }
            catch (JsonSerializationException)
            {
                Dev2Switch ds = new Dev2Switch {
                    SwitchVariable = val.ToString()
                };
                DebugItem            itemToAdd = new DebugItem();
                ErrorResultTO        errors;
                IBinaryDataListEntry expressionsEntry = compiler.Evaluate(dataList.UID, enActionType.User, ds.SwitchVariable, false, out errors);
                var debugResult = new DebugItemVariableParams(ds.SwitchVariable, "Switch on", expressionsEntry, dataList.UID);
                itemToAdd.AddRange(debugResult.GetDebugItemResult());
                result.Add(itemToAdd);
            }
            catch (Exception e)
            {
                allErrors.AddError(e.Message);
            }
            finally
            {
                if (allErrors.HasErrors())
                {
                    var serviceName = GetType().Name;
                    DisplayAndWriteError(serviceName, allErrors);
                    ErrorResultTO error;
                    compiler.UpsertSystemTag(_dataListId, enSystemTag.Dev2Error, allErrors.MakeDataListReady(), out error);
                }
            }

            return(result.Select(a => a as DebugItem).ToList());
        }