private void GetTestValues(List <ValueObject> result, TestCase.CollectionType collectionType)
        {
            int index = CalculateIndexOfConditionOrAction(collectionType);

            foreach (TestCase testCase in TestCasesRoot.TestCases)
            {
                result.Add(testCase.GetValueObject(collectionType, index));
            }
        }
        int CalculateIndexOfConditionOrAction(TestCase.CollectionType collectionType)
        {
            IList <ValueObject> values;

            if (collectionType == TestCase.CollectionType.Conditions)
            {
                values = TestCasesRoot.TestCases[0].Conditions;
            }
            else
            {
                values = TestCasesRoot.TestCases[0].Actions;
            }
            ValueObject value = values.FirstOrDefault(vo => vo.ConditionOrActionParent.Equals(this));

            if (value != null)
            {
                int index = values.IndexOf(value);
                return(index);
            }
            return(-1);
        }
        void PopulateRows <TType>(DataTable dataTable, IList <TType> list, IList <TestCase> testCases, TestCase.CollectionType colType)
        {
            switch (colType)
            {
            case TestCase.CollectionType.Conditions:
                ConditionsBeginChange?.Invoke();
                break;

            case TestCase.CollectionType.Actions:
                ActionsBeginChange?.Invoke();
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(colType), colType, null);
            }
            dataTable.Rows.Clear();
            int rowIndex = 0;

            foreach (TType conditionActionBase in list)
            {
                List <object> values = new List <object>();
                values.Add(conditionActionBase);
                int columnIndex = 1;
                foreach (TestCase testCase in testCases)
                {
                    var value = testCase.GetValueObject(colType, rowIndex);
                    values.Add(value);
                    columnIndex++;
                }
                rowIndex++;
                dataTable.Rows.Add(values.ToArray());
            }
        }
 public static void AddValueObjects <TType>(TestCase tc, ObservableCollection <TType> list, TestCase.CollectionType colType) where TType : IConditionAction
 {
     foreach (IConditionAction condition in list)
     {
         ValueObject vo = ValueObject.Create(condition);
         vo.TestProperty = tc.Name + " " + condition.Name;
         tc.AddValueObject(colType, vo);
     }
 }