コード例 #1
0
        public void GivenItContainsDataSplitAs(string parentName, string activityName, Table table)
        {
            var activity = new DsfDataSplitActivity {
                DisplayName = activityName
            };

            foreach (var tableRow in table.Rows)
            {
                var valueToSplit = string.IsNullOrEmpty(tableRow["String"]) ? "" : tableRow["String"];
                var variable     = tableRow["Variable"];
                var type         = tableRow["Type"];
                var at           = tableRow["At"];
                var include      = tableRow["Include"] == "Selected";
                //var escapeChar = tableRow["Escape"];
                _commonSteps.AddVariableToVariableList(variable);
                if (!string.IsNullOrEmpty(valueToSplit))
                {
                    activity.SourceString = valueToSplit;
                }
                _commonSteps.AddVariableToVariableList(variable);
                activity.ResultsCollection.Add(new DataSplitDTO(variable, type, at, 1, include, true));
            }

            _commonSteps.AddActivityToActivityList(parentName, activityName, activity);
        }
コード例 #2
0
        public void LargeRows_SplitOnNewLine_ShouldSplitCorrectly()
        {
            IList <DataSplitDTO> resultsCollection = new List <DataSplitDTO>();

            resultsCollection.Add(new DataSplitDTO("[[rec().data]]", "New Line", "", 1));
            var sourceString = "";

            if (File.Exists("LargeRowsDataSplit.txt"))
            {
                sourceString = File.ReadAllText("LargeRowsDataSplit.txt");
            }
            else if (File.Exists("Out\\LargeRowsDataSplit.txt"))
            {
                sourceString = File.ReadAllText("Out\\LargeRowsDataSplit.txt");
            }
            Assert.IsFalse(string.IsNullOrEmpty(sourceString), "Cannot find Deployment Item LargeRowsDataSplit.txt");
            var act = new DsfDataSplitActivity {
                SourceString = sourceString, ResultsCollection = resultsCollection, SkipBlankRows = true
            };
            var dataObject = new DsfDataObject("", Guid.Empty)
            {
                IsDebug = false,
            };

            act.Execute(dataObject, 0);

            var totalCount = dataObject.Environment.GetCount("rec");
            var res        = dataObject.Environment.Eval("[[rec().data]]", 0) as CommonFunctions.WarewolfEvalResult.WarewolfAtomListresult;

            Assert.AreEqual("0827373254", res.Item.First().ToString());
            Assert.AreEqual(8300000, totalCount, CurrentDl);
        }
コード例 #3
0
        public void DsfDataSplitActivity_GetState_ReturnsStateVariable()
        {
            IList <DataSplitDTO> resultsCollection = new List <DataSplitDTO> {
                new DataSplitDTO("[[CompanyName]]", "Index", "2", 1)
            };
            var act = new DsfDataSplitActivity {
                SourceString = "[[CompanyName]]", ReverseOrder = true, SkipBlankRows = true, ResultsCollection = resultsCollection
            };

            //------------Execute Test---------------------------
            var stateItems = act.GetState();

            Assert.AreEqual(4, stateItems.Count());

            var expectedResults = new[]
            {
                new StateVariable
                {
                    Name  = "SourceString",
                    Type  = StateVariable.StateType.Input,
                    Value = "[[CompanyName]]"
                },
                new StateVariable
                {
                    Name  = "ReverseOrder",
                    Type  = StateVariable.StateType.Input,
                    Value = "True"
                },
                new StateVariable
                {
                    Name  = "SkipBlankRows",
                    Type  = StateVariable.StateType.Input,
                    Value = "True"
                },
                new StateVariable
                {
                    Name  = "ResultsCollection",
                    Type  = StateVariable.StateType.Output,
                    Value = ActivityHelper.GetSerializedStateValueFromCollection(resultsCollection)
                }
            };

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

            //------------Assert Results-------------------------
            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);
            }
        }
 public void GetActivityFieldsOffDataSplitActivityExpectedAllFindMissingFieldsToBeReturned()
 {
     DsfDataSplitActivity dataSplitActivity = new DsfDataSplitActivity();
     dataSplitActivity.OnErrorVariable = "[[onErr]]";
     dataSplitActivity.ResultsCollection = new List<DataSplitDTO> { new DataSplitDTO("[[OutputVariable1]]", "Index", "[[At1]]", 1) { EscapeChar = "[[Escaped1]]" }, new DataSplitDTO("[[OutputVariable2]]", "Index", "[[At2]]", 2) { EscapeChar = "[[Escaped2]]" } };
     dataSplitActivity.SourceString = "[[SourceString]]";
     Dev2FindMissingStrategyFactory fac = new Dev2FindMissingStrategyFactory();
     IFindMissingStrategy strategy = fac.CreateFindMissingStrategy(enFindMissingType.MixedActivity);
     List<string> actual = strategy.GetActivityFields(dataSplitActivity);
     List<string> expected = new List<string> { "[[Escaped1]]", "[[OutputVariable1]]", "[[At1]]", "[[Escaped2]]", "[[OutputVariable2]]", "[[At2]]", "[[SourceString]]", "[[onErr]]" };
     CollectionAssert.AreEqual(expected, actual);
 }
コード例 #5
0
        public void Equals_Given_Same_ResultsCollection_Different_Indexes_Is_Not_Equal()
        {
            //---------------Set up test pack-------------------
            var uniqueId  = Guid.NewGuid().ToString();
            var splitColl = new List <DataSplitDTO>
            {
                new DataSplitDTO
                {
                    OutputVariable = "[[VariableA]]"
                    ,
                    At = "'"
                },
                new DataSplitDTO
                {
                    OutputVariable = "[[VariableB]]"
                    ,
                    At = "@"
                }
            };
            var splitColl2 = new List <DataSplitDTO>()
            {
                new DataSplitDTO
                {
                    OutputVariable = "[[VariableB]]"
                    ,
                    At = "@"
                }
                ,
                new DataSplitDTO
                {
                    OutputVariable = "[[VariableA]]"
                    ,
                    At = "'"
                }
            };
            var activity1 = new DsfDataSplitActivity()
            {
                UniqueID = uniqueId, ResultsCollection = splitColl
            };
            var activity = new DsfDataSplitActivity()
            {
                UniqueID = uniqueId, ResultsCollection = splitColl2
            };

            //---------------Assert Precondition----------------
            Assert.IsNotNull(activity1);
            //---------------Execute Test ----------------------
            var @equals = activity1.Equals(activity);

            //---------------Test Result -----------------------
            Assert.IsFalse(@equals);
        }
コード例 #6
0
        protected override void BuildDataList()
        {
            BuildShapeAndTestData();

            string stringToSplit;

            ScenarioContext.Current.TryGetValue("stringToSplit", out stringToSplit);

            List <DataSplitDTO> splitCollection;

            ScenarioContext.Current.TryGetValue("splitCollection", out splitCollection);

            var dataSplit = new DsfDataSplitActivity {
                SourceString = stringToSplit
            };


            int row = 1;

            foreach (var dto in splitCollection)
            {
                dto.IndexNumber = row;
                dataSplit.ResultsCollection.Add(dto);
                row++;
            }

            bool reverseOrder;
            bool skipBlankRows;

            ScenarioContext.Current.TryGetValue("ReverseOrder", out reverseOrder);
            ScenarioContext.Current.TryGetValue("SkipBlankRows", out skipBlankRows);
            dataSplit.ReverseOrder  = reverseOrder;
            dataSplit.SkipBlankRows = skipBlankRows;
            TestStartNode           = new FlowStep
            {
                Action = dataSplit
            };

            string errorVariable;

            ScenarioContext.Current.TryGetValue("errorVariable", out errorVariable);

            string webserviceToCall;

            ScenarioContext.Current.TryGetValue("webserviceToCall", out webserviceToCall);

            dataSplit.OnErrorVariable = errorVariable;
            dataSplit.OnErrorWorkflow = webserviceToCall;

            ScenarioContext.Current.Add("activity", dataSplit);
        }
コード例 #7
0
        public void DsfDataSplitActivity_UpdateForEachOutputs_NullUpdates_DoesNothing()
        {
            //------------Setup for test--------------------------
            IList <DataSplitDTO> resultsCollection = new List <DataSplitDTO> {
                new DataSplitDTO("[[CompanyName]]", "Index", "2", 1)
            };
            var act = new DsfDataSplitActivity {
                SourceString = "[[CompanyName]]", ResultsCollection = resultsCollection
            };

            //------------Execute Test---------------------------
            act.UpdateForEachOutputs(null);
            //------------Assert Results-------------------------
            Assert.AreEqual("[[CompanyName]]", act.SourceString);
        }
コード例 #8
0
        public void DsfDataSplitActivity_GetOutputs_Called_ShouldReturnListWithResultValueInIt()
        {
            //------------Setup for test--------------------------
            _resultsCollection.Clear();
            _resultsCollection.Add(new DataSplitDTO("[[recset1(5).field1]]", "Chars", "|", 1));
            _resultsCollection.Add(new DataSplitDTO("[[recset2(2).field2]]", "Chars", "|", 2));
            var act = new DsfDataSplitActivity {
                SourceString = _source, ResultsCollection = _resultsCollection
            };
            //------------Execute Test---------------------------
            var outputs = act.GetOutputs();

            //------------Assert Results-------------------------
            Assert.AreEqual(2, outputs.Count);
            Assert.AreEqual("[[recset1(5).field1]]", outputs[0]);
            Assert.AreEqual("[[recset2(2).field2]]", outputs[1]);
        }
コード例 #9
0
        public void DsfDataSplitActivity_GetForEachOutputs_WhenHasResult_ReturnsInputList()
        {
            //------------Setup for test--------------------------
            IList <DataSplitDTO> resultsCollection = new List <DataSplitDTO> {
                new DataSplitDTO("[[CompanyName]]", "Index", "2", 1)
            };
            var act = new DsfDataSplitActivity {
                SourceString = "[[CompanyName]]", ResultsCollection = resultsCollection
            };

            //------------Execute Test---------------------------
            var dsfForEachItems = act.GetForEachOutputs();

            //------------Assert Results-------------------------
            Assert.AreEqual(1, dsfForEachItems.Count);
            Assert.AreEqual("[[CompanyName]]", dsfForEachItems[0].Name);
            Assert.AreEqual("[[CompanyName]]", dsfForEachItems[0].Value);
        }
コード例 #10
0
ファイル: DataSplitSteps.cs プロジェクト: Robin--/Warewolf
        protected override void BuildDataList()
        {
            BuildShapeAndTestData();

            string stringToSplit;
            ScenarioContext.Current.TryGetValue("stringToSplit", out stringToSplit);

            List<DataSplitDTO> splitCollection;
            ScenarioContext.Current.TryGetValue("splitCollection", out splitCollection);

            var dataSplit = new DsfDataSplitActivity { SourceString = stringToSplit };


            int row = 1;
            foreach(var dto in splitCollection)
            {
                dto.IndexNumber = row;
                dataSplit.ResultsCollection.Add(dto);
                row++;
            }

            bool reverseOrder;
            bool skipBlankRows;
            ScenarioContext.Current.TryGetValue("ReverseOrder", out reverseOrder);
            ScenarioContext.Current.TryGetValue("SkipBlankRows", out skipBlankRows);
            dataSplit.ReverseOrder = reverseOrder;
            dataSplit.SkipBlankRows = skipBlankRows;
            TestStartNode = new FlowStep
                {
                    Action = dataSplit
                };

            string errorVariable;
            ScenarioContext.Current.TryGetValue("errorVariable", out errorVariable);

            string webserviceToCall;
            ScenarioContext.Current.TryGetValue("webserviceToCall", out webserviceToCall);

            dataSplit.OnErrorVariable = errorVariable;
            dataSplit.OnErrorWorkflow = webserviceToCall;
          
            ScenarioContext.Current.Add("activity", dataSplit);
        }
コード例 #11
0
        public void DsfDataSplitActivity_UpdateForEachOutputs_1Updates_UpdateCountNumber()
        {
            //------------Setup for test--------------------------
            IList <DataSplitDTO> resultsCollection = new List <DataSplitDTO> {
                new DataSplitDTO("[[CompanyName]]", "Index", "2", 1)
            };
            var act = new DsfDataSplitActivity {
                SourceString = "[[CompanyName]]", ResultsCollection = resultsCollection
            };

            var tuple1 = new Tuple <string, string>("[[CompanyName]]", "Test");

            //------------Execute Test---------------------------
            act.UpdateForEachOutputs(new List <Tuple <string, string> > {
                tuple1
            });
            //------------Assert Results-------------------------
            Assert.AreEqual("Test", act.ResultsCollection[0].OutputVariable);
        }
コード例 #12
0
        public void Equals_Given_EmptyActivityTools_AreEqual()
        {
            //---------------Set up test pack-------------------
            var uniqueId = Guid.NewGuid().ToString();
            var activity = new DsfDataSplitActivity()
            {
                UniqueID = uniqueId
            };
            var activity1 = new DsfDataSplitActivity()
            {
                UniqueID = uniqueId
            };

            //---------------Assert Precondition----------------
            Assert.IsNotNull(activity);
            //---------------Execute Test ----------------------
            var @equals = activity.Equals(activity1);

            //---------------Test Result -----------------------
            Assert.IsTrue(@equals);
        }
コード例 #13
0
        public void Equals_Given_Same_ReverseOrder_IsEqual()
        {
            //---------------Set up test pack-------------------
            var uniqueId  = Guid.NewGuid().ToString();
            var activity1 = new DsfDataSplitActivity()
            {
                UniqueID = uniqueId, ReverseOrder = true
            };
            var activity = new DsfDataSplitActivity()
            {
                UniqueID = uniqueId, ReverseOrder = true
            };

            //---------------Assert Precondition----------------
            Assert.IsNotNull(activity1);
            //---------------Execute Test ----------------------
            var @equals = activity1.Equals(activity);

            //---------------Test Result -----------------------
            Assert.IsTrue(@equals);
        }
コード例 #14
0
        public void Equals_Given_Different_SourceString_Is_Not_Equal()
        {
            //---------------Set up test pack-------------------
            var uniqueId  = Guid.NewGuid().ToString();
            var activity1 = new DsfDataSplitActivity()
            {
                UniqueID = uniqueId, SourceString = "A"
            };
            var activity = new DsfDataSplitActivity()
            {
                UniqueID = uniqueId, SourceString = "ass"
            };

            //---------------Assert Precondition----------------
            Assert.IsNotNull(activity1);
            //---------------Execute Test ----------------------
            var @equals = activity1.Equals(activity);

            //---------------Test Result -----------------------
            Assert.IsFalse(@equals);
        }
コード例 #15
0
        public void DsfDataSplitActivity_UpdateForEachInputs_MoreThan1Updates_UpdatesMergeCollection()
        {
            //------------Setup for test--------------------------
            IList <DataSplitDTO> resultsCollection = new List <DataSplitDTO> {
                new DataSplitDTO("[[CompanyName]]", "Index", "2", 1), new DataSplitDTO("[[CompanyName]]", "Index", "1", 2)
            };
            var act = new DsfDataSplitActivity {
                SourceString = "[[CompanyName]]", ResultsCollection = resultsCollection
            };

            var tuple1 = new Tuple <string, string>("2", "Test");
            var tuple2 = new Tuple <string, string>("1", "Test2");
            var tuple3 = new Tuple <string, string>("[[CompanyName]]", "Test3");

            //------------Execute Test---------------------------
            act.UpdateForEachInputs(new List <Tuple <string, string> > {
                tuple1, tuple2, tuple3
            });
            //------------Assert Results-------------------------
            Assert.AreEqual("Test", act.ResultsCollection[0].At);
            Assert.AreEqual("Test2", act.ResultsCollection[1].At);
            Assert.AreEqual("Test3", act.SourceString);
        }
        public void GetActivityFieldsOffDataSplitActivityExpectedAllFindMissingFieldsToBeReturned()
        {
            DsfDataSplitActivity dataSplitActivity = new DsfDataSplitActivity();

            dataSplitActivity.OnErrorVariable   = "[[onErr]]";
            dataSplitActivity.ResultsCollection = new List <DataSplitDTO> {
                new DataSplitDTO("[[OutputVariable1]]", "Index", "[[At1]]", 1)
                {
                    EscapeChar = "[[Escaped1]]"
                }, new DataSplitDTO("[[OutputVariable2]]", "Index", "[[At2]]", 2)
                {
                    EscapeChar = "[[Escaped2]]"
                }
            };
            dataSplitActivity.SourceString = "[[SourceString]]";
            Dev2FindMissingStrategyFactory fac      = new Dev2FindMissingStrategyFactory();
            IFindMissingStrategy           strategy = fac.CreateFindMissingStrategy(enFindMissingType.MixedActivity);
            List <string> actual   = strategy.GetActivityFields(dataSplitActivity);
            List <string> expected = new List <string> {
                "[[Escaped1]]", "[[OutputVariable1]]", "[[At1]]", "[[Escaped2]]", "[[OutputVariable2]]", "[[At2]]", "[[SourceString]]", "[[onErr]]"
            };

            CollectionAssert.AreEqual(expected, actual);
        }
コード例 #17
0
        public void DsfDataSplitActivity_GetForEachOutputs_WhenHasResult_ReturnsInputList()
        {
            //------------Setup for test--------------------------
            IList<DataSplitDTO> resultsCollection = new List<DataSplitDTO> { new DataSplitDTO("[[CompanyName]]", "Index", "2", 1) };
            var act = new DsfDataSplitActivity { SourceString = "[[CompanyName]]", ResultsCollection = resultsCollection };

            //------------Execute Test---------------------------
            var dsfForEachItems = act.GetForEachOutputs();
            //------------Assert Results-------------------------
            Assert.AreEqual(1, dsfForEachItems.Count);
            Assert.AreEqual("[[CompanyName]]", dsfForEachItems[0].Name);
            Assert.AreEqual("[[CompanyName]]", dsfForEachItems[0].Value);
        }
コード例 #18
0
        public void DsfDataSplitActivity_UpdateForEachOutputs_1Updates_UpdateCountNumber()
        {
            //------------Setup for test--------------------------
            IList<DataSplitDTO> resultsCollection = new List<DataSplitDTO> { new DataSplitDTO("[[CompanyName]]", "Index", "2", 1) };
            var act = new DsfDataSplitActivity { SourceString = "[[CompanyName]]", ResultsCollection = resultsCollection };

            var tuple1 = new Tuple<string, string>("[[CompanyName]]", "Test");
            //------------Execute Test---------------------------
            act.UpdateForEachOutputs(new List<Tuple<string, string>> { tuple1 });
            //------------Assert Results-------------------------
            Assert.AreEqual("Test", act.ResultsCollection[0].OutputVariable);
        }
コード例 #19
0
        public void DsfDataSplitActivity_UpdateForEachOutputs_NullUpdates_DoesNothing()
        {
            //------------Setup for test--------------------------
            IList<DataSplitDTO> resultsCollection = new List<DataSplitDTO> { new DataSplitDTO("[[CompanyName]]", "Index", "2", 1) };
            var act = new DsfDataSplitActivity { SourceString = "[[CompanyName]]", ResultsCollection = resultsCollection };

            //------------Execute Test---------------------------
            act.UpdateForEachOutputs(null);
            //------------Assert Results-------------------------
            Assert.AreEqual("[[CompanyName]]", act.SourceString);
        }
コード例 #20
0
        public void DsfDataSplitActivity_UpdateForEachInputs_MoreThan1Updates_UpdatesMergeCollection()
        {
            //------------Setup for test--------------------------
            IList<DataSplitDTO> resultsCollection = new List<DataSplitDTO> { new DataSplitDTO("[[CompanyName]]", "Index", "2", 1), new DataSplitDTO("[[CompanyName]]", "Index", "1", 2) };
            var act = new DsfDataSplitActivity { SourceString = "[[CompanyName]]", ResultsCollection = resultsCollection };

            var tuple1 = new Tuple<string, string>("2", "Test");
            var tuple2 = new Tuple<string, string>("1", "Test2");
            var tuple3 = new Tuple<string, string>("[[CompanyName]]", "Test3");
            //------------Execute Test---------------------------
            act.UpdateForEachInputs(new List<Tuple<string, string>> { tuple1, tuple2, tuple3 });
            //------------Assert Results-------------------------
            Assert.AreEqual("Test", act.ResultsCollection[0].At);
            Assert.AreEqual("Test2", act.ResultsCollection[1].At);
            Assert.AreEqual("Test3", act.SourceString);
        }
コード例 #21
0
        public void GivenItContainsDataSplitAs(string parentName, string activityName, Table table)
        {
            DsfDataSplitActivity activity = new DsfDataSplitActivity { DisplayName = activityName };
            foreach(var tableRow in table.Rows)
            {
                var valueToSplit = string.IsNullOrEmpty(tableRow["String"]) ? "" : tableRow["String"];
                var variable = tableRow["Variable"];
                var type = tableRow["Type"];
                var at = tableRow["At"];
                var include = tableRow["Include"] == "Selected";
                //var escapeChar = tableRow["Escape"];
                CommonSteps.AddVariableToVariableList(variable);
                if(!string.IsNullOrEmpty(valueToSplit))
                {
                    activity.SourceString = valueToSplit;
                }
                CommonSteps.AddVariableToVariableList(variable);
                activity.ResultsCollection.Add(new DataSplitDTO(variable, type, at, 1, include, true));
            }

            CommonSteps.AddActivityToActivityList(parentName, activityName, activity);
        }
コード例 #22
0
        /// <summary>
        /// Gets all the fields for a specific activity
        /// </summary>
        /// <param name="activity">The activity that the fields will be retrieved from</param>
        /// <returns>Returns all the fields in a list of strings</returns>
        public List <string> GetActivityFields(object activity)
        {
            List <string> results      = new List <string>();
            Type          activityType = activity.GetType();

            if (activityType == typeof(DsfDataSplitActivity))
            {
                DsfDataSplitActivity dsAct = activity as DsfDataSplitActivity;
                if (dsAct != null)
                {
                    results.AddRange(InternalFindMissing(dsAct.ResultsCollection));
                    if (!string.IsNullOrEmpty(dsAct.SourceString))
                    {
                        results.Add(dsAct.SourceString);
                    }
                }
            }

            if (activityType == typeof(DsfCreateJsonActivity))
            {
                var dsAct = activity as DsfCreateJsonActivity;
                if (dsAct != null)
                {
                    results.AddRange(InternalFindMissing(dsAct.JsonMappings));
                    if (!string.IsNullOrEmpty(dsAct.JsonString))
                    {
                        results.Add(dsAct.JsonString);
                    }
                }
            }
            if (activityType == typeof(SharepointReadListActivity))
            {
                var dsAct = activity as SharepointReadListActivity;
                if (dsAct != null)
                {
                    results.AddRange(InternalFindMissing(dsAct.ReadListItems));
                    if (dsAct.FilterCriteria != null)
                    {
                        results.AddRange(InternalFindMissing(dsAct.FilterCriteria));
                    }
                }
            }
            if (activityType == typeof(SharepointCreateListItemActivity))
            {
                var dsAct = activity as SharepointCreateListItemActivity;
                if (dsAct != null)
                {
                    results.AddRange(InternalFindMissing(dsAct.ReadListItems));
                    results.Add(dsAct.Result);
                }
            }
            if (activityType == typeof(SharepointDeleteListItemActivity))
            {
                var dsAct = activity as SharepointDeleteListItemActivity;
                if (dsAct != null)
                {
                    results.AddRange(InternalFindMissing(dsAct.FilterCriteria));
                    results.Add(dsAct.DeleteCount);
                }
            }
            if (activityType == typeof(SharepointUpdateListItemActivity))
            {
                var dsAct = activity as SharepointUpdateListItemActivity;
                if (dsAct != null)
                {
                    results.AddRange(InternalFindMissing(dsAct.ReadListItems));
                    results.AddRange(InternalFindMissing(dsAct.FilterCriteria));
                    results.Add(dsAct.Result);
                }
            }
            else if (activityType == typeof(DsfDataMergeActivity))
            {
                DsfDataMergeActivity dmAct = activity as DsfDataMergeActivity;
                if (dmAct != null)
                {
                    results.AddRange(InternalFindMissing(dmAct.MergeCollection));
                    if (!string.IsNullOrEmpty(dmAct.Result))
                    {
                        results.Add(dmAct.Result);
                    }
                }
            }
            else if (activityType == typeof(DsfXPathActivity))
            {
                DsfXPathActivity xpAct = activity as DsfXPathActivity;
                if (xpAct != null)
                {
                    results.AddRange(InternalFindMissing(xpAct.ResultsCollection));
                    if (!string.IsNullOrEmpty(xpAct.SourceString))
                    {
                        results.Add(xpAct.SourceString);
                    }
                }
            }
            else if (activityType == typeof(DsfSqlBulkInsertActivity))
            {
                var sbiAct = activity as DsfSqlBulkInsertActivity;
                if (sbiAct != null)
                {
                    results.AddRange(InternalFindMissing(sbiAct.InputMappings));
                    if (!string.IsNullOrEmpty(sbiAct.Result))
                    {
                        results.Add(sbiAct.Result);
                    }
                }
            }
            else if (activityType == typeof(DsfFindRecordsMultipleCriteriaActivity))
            {
                DsfFindRecordsMultipleCriteriaActivity frmAct = activity as DsfFindRecordsMultipleCriteriaActivity;
                if (frmAct != null)
                {
                    results.AddRange(InternalFindMissing(frmAct.ResultsCollection));
                    if (!string.IsNullOrEmpty(frmAct.FieldsToSearch))
                    {
                        results.Add(frmAct.FieldsToSearch);
                    }
                    if (!string.IsNullOrEmpty(frmAct.Result))
                    {
                        results.Add(frmAct.Result);
                    }
                }
            }

            var act = activity as DsfNativeActivity <string>;

            if (act != null)
            {
                if (!string.IsNullOrEmpty(act.OnErrorVariable))
                {
                    results.Add(act.OnErrorVariable);
                }

                if (!string.IsNullOrEmpty(act.OnErrorWorkflow))
                {
                    results.Add(act.OnErrorWorkflow);
                }
            }

            return(results);
        }