void AddBlankRowToRecordset(IServiceTestInput dlItem, IList <IScalar> columns, int indexToInsertAt, int indexNum, IDataListModel dataList)
        {
            IList <IScalar> recsetCols = columns.Distinct(Scalar.Comparer).ToList();
            string          colName    = null;

            foreach (var col in recsetCols.Distinct(new ScalarNameComparer()))
            {
                if (string.IsNullOrEmpty(colName) || !colName.Equals(col.Name))
                {
                    var recSetName       = DataListUtil.ExtractRecordsetNameFromValue(dlItem.Variable);
                    var varName          = string.Concat(recSetName, @"(", indexNum, @").", col.Name);
                    var serviceTestInput = new ServiceTestInput(varName, string.Empty);
                    serviceTestInput.AddNewAction = () => AddRow(serviceTestInput, dataList);
                    Inputs.Insert(indexToInsertAt + 1, serviceTestInput);
                    indexToInsertAt++;
                }
                colName = col.Name;
            }
        }
        public IServiceTestModel CreateTest(IResourceModel resourceModel, int testNumber, bool isFromDebug)
        {
            var testModel = new ServiceTestModel(resourceModel.ID)
            {
                TestName          = "Test " + (testNumber == 0 ? 1 : testNumber),
                TestPending       = true,
                Enabled           = true,
                NewTest           = true,
                NoErrorExpected   = true,
                ErrorExpected     = false,
                ErrorContainsText = string.Empty,
                Inputs            = new ObservableCollection <IServiceTestInput>(),
                Outputs           = new ObservableCollection <IServiceTestOutput>(),
            };

            if (!string.IsNullOrEmpty(resourceModel.DataList))
            {
                DataList = new DataListModel();
                DataList.Create(resourceModel.DataList, resourceModel.DataList);
                var inputList  = _dataListConversionUtils.GetInputs(DataList);
                var outputList = _dataListConversionUtils.GetOutputs(DataList);
                testModel.Inputs = inputList.Select(sca =>
                {
                    var serviceTestInput          = new ServiceTestInput(sca.DisplayValue, "");
                    serviceTestInput.AddNewAction = () => testModel.AddRow(serviceTestInput, DataList);
                    return((IServiceTestInput)serviceTestInput);
                }).ToObservableCollection();
                if (!isFromDebug)
                {
                    testModel.Outputs = outputList.Select(sca =>
                    {
                        var serviceTestOutput          = new ServiceTestOutput(sca.DisplayValue, "", "", "");
                        serviceTestOutput.AddNewAction = () => testModel.AddRow(serviceTestOutput, DataList);
                        return((IServiceTestOutput)serviceTestOutput);
                    }).ToObservableCollection();
                }
            }
            testModel.Item = (ServiceTestModel)testModel.Clone();
            return(testModel);
        }