예제 #1
0
        public OptomizedObservableCollection<IDataListItem> CreateListToBindTo(IDataListModel dataList)
        {
            var result = new OptomizedObservableCollection<IDataListItem>();

            if(dataList != null)
            {
                var listOfScalars = dataList.Scalars;

                // process scalars ;)
                foreach (var entry in listOfScalars
                    .Where(e => e.IODirection == enDev2ColumnArgumentDirection.Input ||
                                e.IODirection == enDev2ColumnArgumentDirection.Both))
                {
                    result.AddRange(ConvertToIDataListItem(entry));
                }

                // now process recordsets ;)
                var listOfRecordSets = dataList.RecordSets;
                foreach (var entry in listOfRecordSets)
                {
                    result.AddRange(ConvertToIDataListItem(entry));
                }
            }

            return result;
        }
예제 #2
0
        public OptomizedObservableCollection <IDataListItem> CreateListToBindTo(IDataListModel dataList)
        {
            var result = new OptomizedObservableCollection <IDataListItem>();

            if (dataList != null)
            {
                var listOfScalars = dataList.Scalars;

                // process scalars ;)
                foreach (var entry in listOfScalars
                         .Where(e => ((e.IODirection == enDev2ColumnArgumentDirection.Input ||
                                       e.IODirection == enDev2ColumnArgumentDirection.Both))))
                {
                    result.AddRange(ConvertToIDataListItem(entry));
                }

                // now process recordsets ;)
                var listOfRecordSets = dataList.RecordSets;
                foreach (var entry in listOfRecordSets)
                {
                    result.AddRange(ConvertToIDataListItem(entry));
                }
            }

            return(result);
        }
        OptomizedObservableCollection <IDataListItem> Get(IDataListModel dataList, enDev2ColumnArgumentDirection directionToGet)
        {
            var result = new OptomizedObservableCollection <IDataListItem>();

            if (dataList != null)
            {
                var listOfScalars = dataList.Scalars;

                foreach (var entry in listOfScalars
                         .Where(e => e.IODirection == directionToGet || e.IODirection == enDev2ColumnArgumentDirection.Both))
                {
                    result.AddRange(ConvertToIDataListItem(entry));
                }

                var listOfRecordSets = dataList.RecordSets;
                foreach (var entry in listOfRecordSets)
                {
                    result.AddRange(ConvertToIDataListItem(entry, directionToGet));
                }

                var listOfComplexObject = dataList.ComplexObjects;
                foreach (var complexObject in listOfComplexObject)
                {
                    if (complexObject.IODirection == enDev2ColumnArgumentDirection.Both || complexObject.IODirection == directionToGet)
                    {
                        result.Add(ConvertToIDataListItem(complexObject));
                    }
                }
            }

            return(result);
        }
예제 #4
0
        public string GetXMLForInputs(IDataListModel dataListModel)
        {
            StringBuilder result = new StringBuilder("<" + RootTag + ">");

            foreach (var item in dataListModel.Scalars.Where(scalar => scalar.IODirection == enDev2ColumnArgumentDirection.Input || scalar.IODirection == enDev2ColumnArgumentDirection.Both))
            {
                DoScalarAppending(result, item);
            }
            foreach (var recordSet in dataListModel.RecordSets.Where(scalar => scalar.IODirection == enDev2ColumnArgumentDirection.Input || scalar.IODirection == enDev2ColumnArgumentDirection.Both))
            {
                DoRecordSetAppending(recordSet, result);
            }
            result.Append("</" + RootTag + ">");
            return(result.ToString());
        }
예제 #5
0
        public void AddRow(IServiceTestOutput itemToAdd, IDataListModel dataList)
        {
            if (itemToAdd != null && DataListUtil.IsValueRecordset(itemToAdd.Variable))
            {
                var recordsetNameFromValue = DataListUtil.ExtractRecordsetNameFromValue(itemToAdd.Variable);
                var recordset = dataList.ShapeRecordSets.FirstOrDefault(set => set.Name == recordsetNameFromValue);
                if (recordset == null)
                {
                    return;
                }
                var recsetCols = new List <IScalar>();
                foreach (var column in recordset.Columns)
                {
                    var cols = column.Value.Where(scalar => scalar.IODirection == enDev2ColumnArgumentDirection.Output || scalar.IODirection == enDev2ColumnArgumentDirection.Both);
                    recsetCols.AddRange(cols);
                }

                var numberOfRows = Outputs.Where(c => DataListUtil.ExtractRecordsetNameFromValue(c.Variable) == recordsetNameFromValue);
                IEnumerable <IServiceTestOutput> dataListItems = numberOfRows as IServiceTestOutput[] ?? numberOfRows.ToArray();
                var lastItem        = dataListItems.Last();
                var indexToInsertAt = Outputs.IndexOf(lastItem);
                var indexString     = DataListUtil.ExtractIndexRegionFromRecordset(lastItem.Variable);
                var indexNum        = Convert.ToInt32(indexString) + 1;
                var lastRow         = dataListItems.Where(c => DataListUtil.ExtractIndexRegionFromRecordset(c.Variable) == indexString);
                var addRow          = false;
                foreach (var item in lastRow)
                {
                    if (item.Value != string.Empty)
                    {
                        addRow = true;
                    }
                }
                if (addRow)
                {
                    AddBlankRowToRecordset(itemToAdd, recsetCols, indexToInsertAt, indexNum, dataList);
                }
            }
        }
 public string GetXMLForInputs(IDataListModel dataListModel)
 {
     StringBuilder result = new StringBuilder("<" + RootTag + ">");
     foreach(var item in dataListModel.Scalars.Where(scalar => scalar.IODirection==enDev2ColumnArgumentDirection.Input || scalar.IODirection==enDev2ColumnArgumentDirection.Both))
     {
         DoScalarAppending(result, item);    
     }
     foreach (var recordSet in dataListModel.RecordSets.Where(scalar => scalar.IODirection == enDev2ColumnArgumentDirection.Input || scalar.IODirection == enDev2ColumnArgumentDirection.Both))
     {
         DoRecordSetAppending(recordSet, result);
     }
     result.Append("</" + RootTag + ">");
     return result.ToString();
 }
예제 #7
0
        void AddBlankRowToRecordset(IServiceTestOutput 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 serviceTestOutput = new ServiceTestOutput(varName, string.Empty, string.Empty, string.Empty);
                    serviceTestOutput.AddNewAction = () => AddRow(serviceTestOutput, dataList);
                    Outputs.Insert(indexToInsertAt + 1, serviceTestOutput);
                    indexToInsertAt++;
                }
                colName = col.Name;
            }
        }
 public OptomizedObservableCollection <IDataListItem> GetOutputs(IDataListModel dataList) => Get(dataList, enDev2ColumnArgumentDirection.Output);
 public OptomizedObservableCollection <IDataListItem> CreateListToBindTo(IDataListModel dataList) => GetInputs(dataList);
 public OptomizedObservableCollection <IDataListItem> GetInputs(IDataListModel dataList)
 {
     return(Get(dataList, enDev2ColumnArgumentDirection.Input));
 }