private int ArchiveTableXml(FileInfo path, TableXsd tableXsd, ITable table, IEnumerable <IEnumerable <IDataObjectBase> > dataRows, int tableNo, object syncRoot)
        {
            if (path == null)
            {
                throw new ArgumentNullException(nameof(path));
            }
            if (tableXsd == null)
            {
                throw new ArgumentNullException(nameof(tableXsd));
            }
            if (dataRows == null)
            {
                throw new ArgumentNullException(nameof(dataRows));
            }
            if (table == null)
            {
                throw new ArgumentNullException(nameof(table));
            }
            if (tableNo < 1)
            {
                throw new DeliveryEngineRepositoryException(Resource.GetExceptionMessage(ExceptionMessage.IllegalValue, tableNo, "tableNo"));
            }
            if (syncRoot == null)
            {
                throw new ArgumentNullException(nameof(syncRoot));
            }

            ReadOnlyObservableCollection <IFilter> fieldFilters = table.FieldFilters;

            using (var tableXml = new TableXml(tableXsd, path, _fileIndex, tableNo))
            {
                var rowCount = 0;
                foreach (var dataRow in dataRows)
                {
                    tableXml.AddRow();
                    foreach (var dataObject in dataRow.Where(m => ExcludeField(m.Field, fieldFilters) == false))
                    {
                        var genericMethodForValue = dataObject.GetType()
                                                    .GetMethod("GetTargetValue", new Type[] { })
                                                    .MakeGenericMethod(dataObject.Field.DatatypeOfTarget);
                        var value = genericMethodForValue.Invoke(dataObject, null);
                        tableXml.AddField(dataObject.Field.ColumnId, value);
                    }
                    tableXml.CloseRow();
                    rowCount++;
                }

                tableXml.Persist(syncRoot);

                return(rowCount);
            }
        }
Esempio n. 2
0
        public void Deserialize_SampleFile_TableAndPerspectiveLoaded()
        {
            int testNr = 0;

            // Create an instance of the XmlSerializer specifying type and namespace.
            TestSuiteXml ts = DeserializeSample();

            // Check the properties of the object.
            Assert.That(ts.Tests[testNr].Systems[0], Is.TypeOf <StructureXml>());
            Assert.That(((StructureXml)ts.Tests[testNr].Systems[0]).Item, Is.TypeOf <TableXml>());

            TableXml item = (TableXml)((StructureXml)ts.Tests[testNr].Systems[0]).Item;

            Assert.That(item.Caption, Is.EqualTo("table"));
            Assert.That(item.Perspective, Is.EqualTo("perspective"));
            Assert.That(item.ConnectionString, Is.EqualTo("connectionString"));
        }