public RoadNodeChangeDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(WEGKNOOPID)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TYPE)),
                    new DbaseFieldLength(3),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TRANSACTID)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(RECORDTYPE)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0))
            };
        }
Esempio n. 2
0
        public EuropeanRoadChangeDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(EU_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(WS_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(EUNUMMER)),
                    new DbaseFieldLength(4)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TRANSACTID)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(RECORDTYPE)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0))
            };
        }
Esempio n. 3
0
        internal static ICollection<DbaseField> GetFields(DataTable schema, DbaseHeader header)
        {
			if (schema == null)
			{
				throw new ArgumentNullException("schema");
			}

            List<DbaseField> fields = new List<DbaseField>();
			DataView schemaView = new DataView(schema, "", ProviderSchemaHelper.ColumnOrdinalColumn, DataViewRowState.CurrentRows);

        	int offset = 1;
			foreach (DataRowView rowView in schemaView)
            {
				if (String.Compare(rowView[ProviderSchemaHelper.ColumnNameColumn] as string, OidColumnName, 
					StringComparison.InvariantCultureIgnoreCase) == 0)
				{
					continue;
				}

				string colName = rowView[ProviderSchemaHelper.ColumnNameColumn] as string;
				Type dataType = (Type)rowView[ProviderSchemaHelper.DataTypeColumn];
				Int16 length = Convert.ToInt16(rowView[ProviderSchemaHelper.ColumnSizeColumn]);
				Byte decimals = Convert.ToByte(rowView[ProviderSchemaHelper.NumericPrecisionColumn]);
				int ordinal = Convert.ToInt32(rowView[ProviderSchemaHelper.ColumnOrdinalColumn]);

				DbaseField field = new DbaseField(header, colName, dataType, length, decimals, ordinal, offset);

                fields.Add(field);

            	offset += field.Length;
            }

            return fields;
        }
        public NationalRoadChangeDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(NW_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(WS_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(IDENT2)),
                    new DbaseFieldLength(8)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TRANSACTID)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(RECORDTYPE)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0))
            };
        }
Esempio n. 5
0
        internal FeatureDataRow GetFeature(uint oid, FeatureDataTable table)
        {
            if (RecordDeleted(oid))
            {
                return(null);
            }

            /*
             * if (!_isOpen)
             *  throw (new ApplicationException("An attempt was made to read from a closed DBF file"));
             * if (oid >= _NumberOfRecords)
             *  throw (new ArgumentException("Invalid DataRow requested at index " + oid));
             * fs.Seek(_HeaderLength + oid*_RecordLength, 0);
             *
             * if (br.ReadChar() == '*') //is record marked deleted?
             *  return null;
             */

            var dr = table.NewRow();

            for (int i = 0; i < DbaseColumns.Length; i++)
            {
                DbaseField dbf = DbaseColumns[i];
                dr[dbf.ColumnName] = ReadDbfValue(dbf);
            }
            return(dr);
        }
Esempio n. 6
0
        /// <summary>
        /// Gets the feature at the specified Object ID
        /// </summary>
        /// <param name="oid"></param>
        /// <param name="table"></param>
        /// <returns></returns>
        internal IFeature GetFeature(uint oid, IFeatures table)
        {
            if (!_isOpen)
            {
                throw (new ApplicationException("An attempt was made to read from a closed DBF file"));
            }
            if (oid >= _NumberOfRecords)
            {
                throw (new ArgumentException("Invalid DataRow requested at index " + oid.ToString()));
            }
            fs.Seek(_HeaderLength + oid * _RecordLength, 0);

            IFeature dr = table.New();

            if (br.ReadChar() == '*') //is record marked deleted?
            {
                return(null);
            }

            for (int i = 0; i < DbaseColumns.Length; i++)
            {
                DbaseField dbf = DbaseColumns[i];
                dr[dbf.ColumnName] = ReadDbfValue(dbf);
            }
            return(dr);
        }
Esempio n. 7
0
 public TransactionZoneDbaseSchema()
 {
     Fields = new []
     {
         DbaseField.CreateNumberField(
             new DbaseFieldName(nameof(SOURCE_ID)),
             new DbaseFieldLength(4),
             new DbaseDecimalCount(0)),
         DbaseField.CreateNumberField(
             new DbaseFieldName(nameof(TYPE)),
             new DbaseFieldLength(4),
             new DbaseDecimalCount(0)),
         DbaseField.CreateCharacterField(
             new DbaseFieldName(nameof(BESCHRIJV)),
             new DbaseFieldLength(254)),
         DbaseField.CreateCharacterField(
             new DbaseFieldName(nameof(OPERATOR)),
             new DbaseFieldLength(254)),
         DbaseField.CreateCharacterField(
             new DbaseFieldName(nameof(ORG)),
             new DbaseFieldLength(18)),
         DbaseField.CreateCharacterField(
             new DbaseFieldName(nameof(APPLICATIE)),
             new DbaseFieldLength(18))
     };
 }
        public RoadSegmentSurfaceAttributeDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(WV_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(WS_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(WS_GIDN)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TYPE)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLTYPE)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(VANPOS)),
                    new DbaseFieldLength(9),
                    new DbaseDecimalCount(3)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TOTPOS)),
                    new DbaseFieldLength(9),
                    new DbaseDecimalCount(3)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINTIJD)),
                    new DbaseFieldLength(15)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINORG)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLBGNORG)),
                    new DbaseFieldLength(64))
            };
        }
Esempio n. 9
0
 public FakeDbaseSchema()
 {
     Fields = new []
     {
         DbaseField.CreateNumberField(
             new DbaseFieldName(nameof(Field)),
             new DbaseFieldLength(10),
             new DbaseDecimalCount(0))
     };
 }
        public void ValidateWithRecordsThatHaveNullAsRequiredFieldValueReturnsExpectedResult(
            Action <NumberedRoadChangeDbaseRecord> modifier, DbaseField field)
        {
            var record = _fixture.Create <NumberedRoadChangeDbaseRecord>();

            modifier(record);
            var records = new[] { record }.ToDbaseRecordEnumerator();

            var result = _sut.Validate(_entry, records);

            Assert.Contains(_entry.AtDbaseRecord(new RecordNumber(1)).RequiredFieldIsNull(field), result);
        }
Esempio n. 11
0
        public RoadSegmentNumberedRoadAttributeDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(GW_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(WS_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(IDENT8)),
                    new DbaseFieldLength(8)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(RICHTING)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLRICHT)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(VOLGNUMMER)),
                    new DbaseFieldLength(5),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINTIJD)),
                    new DbaseFieldLength(15)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINORG)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLBGNORG)),
                    new DbaseFieldLength(64))
            };
        }
Esempio n. 12
0
        public RoadSegmentLaneChangeDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(RS_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(WS_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(VANPOSITIE)),
                    new DbaseFieldLength(7),
                    new DbaseDecimalCount(3)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TOTPOSITIE)),
                    new DbaseFieldLength(7),
                    new DbaseDecimalCount(3)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(AANTAL)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(RICHTING)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TRANSACTID)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(RECORDTYPE)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0))
            };
        }
        public OrganizationDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateCharacterField(
                    new DbaseFieldName(nameof(ORG)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLORG)),
                    new DbaseFieldLength(64))
            };
        }
Esempio n. 14
0
        public GradeSeparatedJunctionDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(OK_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TYPE)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLTYPE)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(BO_WS_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),
                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(ON_WS_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINTIJD)),
                    new DbaseFieldLength(15)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINORG)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLBGNORG)),
                    new DbaseFieldLength(64))
            };
        }
Esempio n. 15
0
        public NumberedRoadChangeDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(GW_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(WS_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(IDENT8)),
                    new DbaseFieldLength(8)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(RICHTING)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(VOLGNUMMER)),
                    new DbaseFieldLength(5),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TRANSACTID)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(RECORDTYPE)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0))
            };
        }
Esempio n. 16
0
        public RoadSegmentCategoryDbaseSchema()
        {
            Fields = new[]
            {
                DbaseField.CreateCharacterField(
                    new DbaseFieldName(nameof(WEGCAT)),
                    new DbaseFieldLength(5)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLWEGCAT)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(DEFWEGCAT)),
                    new DbaseFieldLength(254))
            };
        }
Esempio n. 17
0
        public RoadNodeTypeDbaseSchema()
        {
            Fields = new[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(TYPE)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLTYPE)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(DEFTYPE)),
                    new DbaseFieldLength(254))
            };
        }
Esempio n. 18
0
        public RoadSegmentMorphologyDbaseSchema()
        {
            Fields = new[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(MORF)),
                    new DbaseFieldLength(3),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLMORF)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(DEFMORF)),
                    new DbaseFieldLength(254))
            };
        }
        public NumberedRoadSegmentDirectionDbaseSchema()
        {
            Fields = new[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(RICHTING)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLRICHT)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(DEFRICHT)),
                    new DbaseFieldLength(254))
            };
        }
Esempio n. 20
0
        public RoadSegmentStatusDbaseSchema()
        {
            Fields = new[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(STATUS)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLSTATUS)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(DEFSTATUS)),
                    new DbaseFieldLength(254))
            };
        }
        public RoadSegmentGeometryDrawMethodDbaseSchema()
        {
            Fields = new[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(METHODE)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLMETHOD)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(DEFMETHOD)),
                    new DbaseFieldLength(254))
            };
        }
        public RoadSegmentAccessRestrictionDbaseSchema()
        {
            Fields = new[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(TYPE)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLTYPE)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(DEFTYPE)),
                    new DbaseFieldLength(254))
            };
        }
Esempio n. 23
0
        public RoadNodeDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(WK_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(WK_UIDN)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TYPE)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLTYPE)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINTIJD)),
                    new DbaseFieldLength(15)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINORG)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLBGNORG)),
                    new DbaseFieldLength(64))
            };
        }
Esempio n. 24
0
        public GradeSeparatedJunctionChangeDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(OK_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TYPE)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(BO_WS_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(ON_WS_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TRANSACTID)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(RECORDTYPE)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0))
            };
        }
        public RoadSegmentNationalRoadAttributeDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(NW_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(WS_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(IDENT2)),
                    new DbaseFieldLength(8)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINTIJD)),
                    new DbaseFieldLength(15)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINORG)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLBGNORG)),
                    new DbaseFieldLength(64))
            };
        }
        public RoadSegmentEuropeanRoadAttributeDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(EU_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(WS_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(EUNUMMER)),
                    new DbaseFieldLength(4)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINTIJD)),
                    new DbaseFieldLength(15)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINORG)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLBGNORG)),
                    new DbaseFieldLength(64))
            };
        }
        public RoadSegmentChangeDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(WS_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(METHODE)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEHEERDER)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(MORFOLOGIE)),
                    new DbaseFieldLength(3),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(STATUS)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(WEGCAT)),
                    new DbaseFieldLength(10)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(B_WK_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(E_WK_OIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(LSTRNMID)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(RSTRNMID)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TGBEP)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TRANSACTID)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(RECORDTYPE)),
                    new DbaseFieldLength(4),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(EVENTIDN)),
                    new DbaseFieldLength(10),
                    new DbaseDecimalCount(0))
            };
        }
Esempio n. 28
0
            private object readDbfValue(DbaseField dbf)
            {
                if (ReferenceEquals(dbf, null))
                {
                    throw new ArgumentNullException("dbf");
                }
#if CFBuild
                byte[] brBytes;
#endif
                switch (Type.GetTypeCode(dbf.DataType))
                {
                    case TypeCode.Boolean:
                        char tempChar = (char)_dbaseReader.ReadByte();
                        return ((tempChar == 'T') || (tempChar == 't') || (tempChar == 'Y') || (tempChar == 'y'));

                    case TypeCode.DateTime:
                        DateTime date;
                        // Mono has not yet implemented DateTime.TryParseExact
#if !MONO
#if !CFBuild
                        if (DateTime.TryParseExact(Encoding.UTF8.GetString((_dbaseReader.ReadBytes(8))),
                                                   "yyyyMMdd", DbaseConstants.StorageNumberFormat, 
                                                   DateTimeStyles.None, out date))
                        {
                            return date;
                        }
                        else
                        {
                            return DBNull.Value;
                        }
#else
                        try
                        {
                            brBytes = _dbaseReader.ReadBytes(8);

                            return date = DateTime.ParseExact(Encoding.UTF7.GetString(brBytes, 0, brBytes.Length),
                            "yyyyMMdd", DbaseConstants.StorageNumberFormat, DateTimeStyles.None);
                        }
                        catch (Exception e)
                        {
                            return DBNull.Value;
                        }
#endif
#else
					    try 
					    {
						    date = DateTime.ParseExact(Encoding.UTF8.GetString((_dbaseReader.ReadBytes(8))), 	
						        "yyyyMMdd", DbaseConstants.StorageNumberFormat, DateTimeStyles.None);

					        return date;
					    }
					    catch (FormatException)
					    {
						    return DBNull.Value;
					    }
#endif


                    case TypeCode.Double:
#if !CFBuild
                        string temp = Encoding.UTF8.GetString(_dbaseReader.ReadBytes(dbf.Length)).Replace("\0", "").Trim();
#else
                        brBytes = _dbaseReader.ReadBytes(dbf.Length);
                        string temp = Encoding.UTF8.GetString(brBytes, 0, brBytes.Length).Replace("\0", "").Trim();
#endif
                        double dbl;


#if !CFBuild
                        if (double.TryParse(temp, NumberStyles.Float, DbaseConstants.StorageNumberFormat, out dbl))
                        {
                            return dbl;
                        }
                        else
                        {
                            return DBNull.Value;
                        }
#else
                        try
                        {
                            dbl = double.Parse(temp, NumberStyles.Float, DbaseConstants.StorageNumberFormat);
                            return dbl;
                        }
                        catch (Exception e)
                        {
                            return DBNull.Value;
                        }
#endif

                    case TypeCode.Int16:
#if !CFBuild
                        string temp16 =
                            Encoding.UTF8.GetString((_dbaseReader.ReadBytes(dbf.Length))).Replace("\0", "").Trim();
#else
                        brBytes = _dbaseReader.ReadBytes(dbf.Length);
                        string temp16 =
                                Encoding.UTF8.GetString(brBytes, 0, brBytes.Length).Replace("\0", "").Trim();
#endif
                        Int16 i16;
#if !CFBuild
                        if (Int16.TryParse(temp16, NumberStyles.Float, DbaseConstants.StorageNumberFormat, out i16))
                        {
                            return i16;
                        }
                        else
                        {
                            return DBNull.Value;
                        }
#else
                        try
                        {
                            i16 = Int16.Parse(temp16, NumberStyles.Float, DbaseConstants.StorageNumberFormat);
                            return i16;
                        }
                        catch (Exception e)
                        {
                            return DBNull.Value;
                        }
#endif
                    case TypeCode.Int32:
#if !CFBuild
                        string temp32 =
                            Encoding.UTF8.GetString((_dbaseReader.ReadBytes(dbf.Length))).Replace("\0", "").Trim();
#else
                        brBytes = _dbaseReader.ReadBytes(dbf.Length);
                        string temp32 =
                            Encoding.UTF8.GetString(brBytes, 0, brBytes.Length).Replace("\0", "").Trim();
#endif

                        Int32 i32;
#if !CFBuild
                        if (Int32.TryParse(temp32, NumberStyles.Float, DbaseConstants.StorageNumberFormat, out i32))
                        {
                            return i32;
                        }
                        else
                        {
                            return DBNull.Value;
                        }
#else
                        try
                        {
                            i32 = Int32.Parse(temp32, NumberStyles.Float, DbaseConstants.StorageNumberFormat);
                            return i32;
                        }
                        catch (Exception e)
                        {
                            return DBNull.Value;
                        }

#endif
                    case TypeCode.Int64:
#if !CFBuild
                        string temp64 =
                            Encoding.UTF8.GetString((_dbaseReader.ReadBytes(dbf.Length))).Replace("\0", "").Trim();
#else
                        brBytes = _dbaseReader.ReadBytes(dbf.Length);
                        string temp64 =
                            Encoding.UTF8.GetString(brBytes, 0, brBytes.Length).Replace("\0", "").Trim();
#endif

                        Int64 i64 = 0;

#if !CFBuild
                        if (Int64.TryParse(temp64, NumberStyles.Float, DbaseConstants.StorageNumberFormat, out i64))
                        {
                            return i64;
                        }
                        else
                        {
                            return DBNull.Value;
                        }
#else
                        try
                        {
                            i64 = Int64.Parse(temp64, NumberStyles.Float, DbaseConstants.StorageNumberFormat);
                            return i64;
                        }
                        catch (Exception e)
                        {
                            return DBNull.Value;
                        }
#endif
                    case TypeCode.Single:
#if !CFBuild
                        string temp4 = Encoding.UTF8.GetString((_dbaseReader.ReadBytes(dbf.Length)));
#else
                        brBytes = _dbaseReader.ReadBytes(dbf.Length);
                        string temp4 = Encoding.UTF8.GetString(brBytes, 0, brBytes.Length);
#endif
                        float f = 0;

#if !CFBuild
                        if (float.TryParse(temp4, NumberStyles.Float, DbaseConstants.StorageNumberFormat, out f))
                        {
                            return f;
                        }
                        else
                        {
                            return DBNull.Value;
                        }
#else
                        try
                        {
                            f = float.Parse(temp4, NumberStyles.Float, DbaseConstants.StorageNumberFormat);
                            return f;
                        }
                        catch (Exception e)
                        {
                            return DBNull.Value;
                        }

#endif
                    case TypeCode.String:
                        {
                            byte[] chars = _dbaseReader.ReadBytes(dbf.Length);
#if !CFBuild
                            string value = _dbaseFile.Encoding.GetString(chars);
#else
                            string value = _dbaseFile.Encoding.GetString(chars, 0, chars.Length);
#endif
                            return value.Replace("\0", "").Trim();
                        }

                    case TypeCode.Char:
                    case TypeCode.UInt16:
                    case TypeCode.UInt32:
                    case TypeCode.UInt64:
                    case TypeCode.Byte:
                    case TypeCode.DBNull:
                    case TypeCode.Object:
                    case TypeCode.SByte:
                    case TypeCode.Empty:
                    case TypeCode.Decimal:
                    default:
                        throw new NotSupportedException("Cannot parse DBase field '"
                                                        + dbf.ColumnName + "' of type '" + dbf.DataType + "'");
                }
            }
Esempio n. 29
0
            /// <summary>
            /// Gets a value for the given <paramref name="row">row index</paramref> and 
            /// <paramref name="column">column index</paramref>.
            /// </summary>
            /// <param name="row">
            /// Index of the row to retrieve value from. Zero-based.
            /// </param>
            /// <param name="column">
            /// Index of the column to retrieve value from. Zero-based.
            /// </param>
            /// <returns>
            /// The value at the given (row, column).
            /// </returns>
            /// <exception cref="ObjectDisposedException">
            /// Thrown when the method is called and 
            /// object has been disposed.
            /// </exception>
            /// <exception cref="InvalidDbaseFileOperationException">
            /// Thrown if this reader is 
            /// closed (check <see cref="IsOpen"/> before calling), or if the column is an 
            /// unsupported type.
            /// </exception>
            /// <exception cref="ArgumentOutOfRangeException">
			/// Thrown if <paramref name="row"/> is 
            /// less than 0 or greater than <see cref="RecordCount"/> - 1.
            /// </exception>
            internal object GetValue(uint row, DbaseField column)
            {
                checkState();

                DbaseHeader header = _dbaseFile._header;

                if (!_dbaseFile.IsOpen)
                {
                    throw new InvalidDbaseFileOperationException(
                        "An attempt was made to read from a closed DBF file");
                }

                if (row < 0 || row >= header.RecordCount)
                {
                    throw new ArgumentOutOfRangeException(
                        "Invalid row requested at index " + row);
                }

                // Compute the position in the file stream for the requested row and column
                long offset = header.HeaderLength + (row * header.RecordLength);
                offset += column.Offset;

                // Seek to the computed offset
                _dbaseFile.DataStream.Seek(offset, SeekOrigin.Begin);

                try
                {
                    return readDbfValue(column);
                }
                catch (NotSupportedException)
                {
                    throw new InvalidDbaseFileOperationException(
                        String.Format("Column type {0} is not supported.", column.DataType));
                }
            }
Esempio n. 30
0
        private object ReadDbfValue(DbaseField dbf)
        {
            switch (dbf.DataType.ToString())
            {
            case "System.String":
                if (_encoding == null)
                {
                    return(_fileEncoding.GetString(_br.ReadBytes(dbf.Length)).Replace("\0", "").Trim());
                }
                return(_encoding.GetString(_br.ReadBytes(dbf.Length)).Replace("\0", "").Trim());

            case "System.Double":
                string temp = Encoding.UTF7.GetString(_br.ReadBytes(dbf.Length)).Replace("\0", "").Trim();
                double dbl;
                if (double.TryParse(temp, NumberStyles.Float, CultureInfo.InvariantCulture, out dbl))
                {
                    return(dbl);
                }
                return(DBNull.Value);

            case "System.Int16":
                string temp16 = Encoding.UTF7.GetString((_br.ReadBytes(dbf.Length))).Replace("\0", "").Trim();
                Int16  i16;
                if (Int16.TryParse(temp16, NumberStyles.Float, CultureInfo.InvariantCulture, out i16))
                {
                    return(i16);
                }
                return(DBNull.Value);

            case "System.Int32":
                string temp32 = Encoding.UTF7.GetString((_br.ReadBytes(dbf.Length))).Replace("\0", "").Trim();
                Int32  i32;
                if (Int32.TryParse(temp32, NumberStyles.Float, CultureInfo.InvariantCulture, out i32))
                {
                    return(i32);
                }
                return(DBNull.Value);

            case "System.Int64":
                string temp64 = Encoding.UTF7.GetString((_br.ReadBytes(dbf.Length))).Replace("\0", "").Trim();
                Int64  i64;
                if (Int64.TryParse(temp64, NumberStyles.Float, CultureInfo.InvariantCulture, out i64))
                {
                    return(i64);
                }
                return(DBNull.Value);

            case "System.Single":
                string temp4 = Encoding.UTF8.GetString((_br.ReadBytes(dbf.Length)));
                float  f;
                if (float.TryParse(temp4, NumberStyles.Float, CultureInfo.InvariantCulture, out f))
                {
                    return(f);
                }
                return(DBNull.Value);

            case "System.Boolean":
                char tempChar = _br.ReadChar();
                return((tempChar == 'T') || (tempChar == 't') || (tempChar == 'Y') || (tempChar == 'y'));

            case "System.DateTime":
                DateTime date;
                // Mono has not yet implemented DateTime.TryParseExact
#if !MONO
                if (DateTime.TryParseExact(Encoding.UTF7.GetString((_br.ReadBytes(8))),
                                           "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
                {
                    return(date);
                }
                return(DBNull.Value);
#else
                try
                {
                    return(date = DateTime.ParseExact(System.Text.Encoding.UTF7.GetString((br.ReadBytes(8))),
                                                      "yyyyMMdd", Mapsui.Map.numberFormat_EnUS, System.Globalization.DateTimeStyles.None));
                }
                catch (Exception e)
                {
                    return(DBNull.Value);
                }
#endif
            default:
                throw (new NotSupportedException("Cannot parse DBase field '" + dbf.ColumnName + "' of type '" +
                                                 dbf.DataType + "'"));
            }
        }
Esempio n. 31
0
        private void ParseDbfHeader()
        {
            if (_br.ReadByte() != 0x03)
            {
                throw new NotSupportedException("Unsupported DBF Type");
            }

            _lastUpdate = new DateTime(_br.ReadByte() + 1900, _br.ReadByte(), _br.ReadByte());
            //Read the last update date
            _numberOfRecords = _br.ReadInt32();                     // read number of records.
            _headerLength    = _br.ReadInt16();                     // read length of header structure.
            _recordLength    = _br.ReadInt16();                     // read length of a record
            _fs.Seek(29, SeekOrigin.Begin);                         //Seek to encoding flag
            _fileEncoding = GetDbaseLanguageDriver(_br.ReadByte()); //Read and parse Language driver
            _fs.Seek(32, SeekOrigin.Begin);                         //Move past the reserved bytes

            int numberOfColumns = (_headerLength - 31) / 32;        // calculate the number of DataColumns in the header

            _dbaseColumns = new DbaseField[numberOfColumns];
            for (int i = 0; i < _dbaseColumns.Length; i++)
            {
                _dbaseColumns[i] = new DbaseField
                {
                    ColumnName = Encoding.UTF7.GetString((_br.ReadBytes(11))).Replace("\0", "").Trim()
                };
                char fieldtype = _br.ReadChar();
                switch (fieldtype)
                {
                case 'L':
                    _dbaseColumns[i].DataType = typeof(bool);
                    break;

                case 'C':
                    _dbaseColumns[i].DataType = typeof(string);
                    break;

                case 'D':
                    _dbaseColumns[i].DataType = typeof(DateTime);
                    break;

                case 'N':
                    _dbaseColumns[i].DataType = typeof(double);
                    break;

                case 'F':
                    _dbaseColumns[i].DataType = typeof(float);
                    break;

                case 'B':
                    _dbaseColumns[i].DataType = typeof(byte[]);
                    break;

                default:
                    throw (new NotSupportedException("Invalid or unknown DBase field type '" + fieldtype +
                                                     "' in column '" + _dbaseColumns[i].ColumnName + "'"));
                }
                _dbaseColumns[i].Address = _br.ReadInt32();

                int length = _br.ReadByte();
                if (length < 0)
                {
                    length = length + 256;
                }
                _dbaseColumns[i].Length   = length;
                _dbaseColumns[i].Decimals = _br.ReadByte();
                //If the double-type doesn't have any decimals, make the type an integer
                if (_dbaseColumns[i].Decimals == 0 && _dbaseColumns[i].DataType == typeof(double))
                {
                    if (_dbaseColumns[i].Length <= 2)
                    {
                        _dbaseColumns[i].DataType = typeof(Int16);
                    }
                    else if (_dbaseColumns[i].Length <= 4)
                    {
                        _dbaseColumns[i].DataType = typeof(Int32);
                    }
                    else
                    {
                        _dbaseColumns[i].DataType = typeof(Int64);
                    }
                }
                _fs.Seek(_fs.Position + 14, 0);
            }
            _headerIsParsed = true;
        }
Esempio n. 32
0
        internal static DbaseHeader ParseDbfHeader(Stream dataStream)
        {
            DbaseHeader header;

            using (BinaryReader reader = new BinaryReader(dataStream))
            {
                if (reader.ReadByte() != DbaseConstants.DbfVersionCode)
                {
                    throw new NotSupportedException("Unsupported DBF Type");
                }

                DateTime lastUpdate = new DateTime(reader.ReadByte() + DbaseConstants.DbaseEpoch,
                    reader.ReadByte(), reader.ReadByte()); //Read the last update date
                UInt32 recordCount = reader.ReadUInt32(); // read number of records.
                Int16 storedHeaderLength = reader.ReadInt16(); // read length of header structure.
                Int16 storedRecordLength = reader.ReadInt16(); // read length of a record
                reader.BaseStream.Seek(DbaseConstants.EncodingOffset, SeekOrigin.Begin); //Seek to encoding flag
                Byte languageDriver = reader.ReadByte(); //Read and parse Language driver
                reader.BaseStream.Seek(DbaseConstants.ColumnDescriptionOffset, SeekOrigin.Begin); //Move past the reserved bytes
                Int32 numberOfColumns = (storedHeaderLength - DbaseConstants.ColumnDescriptionOffset) /
                    DbaseConstants.ColumnDescriptionLength;  // calculate the number of DataColumns in the header

                header = new DbaseHeader(languageDriver, lastUpdate, recordCount);

                DbaseField[] columns = new DbaseField[numberOfColumns];
            	Int32 offset = 1;

                for (Int32 i = 0; i < columns.Length; i++)
                {
                    String colName = header.FileEncoding.GetString(
                        reader.ReadBytes(11)).Replace("\0", "").Trim();

                    Char fieldtype = reader.ReadChar();

                    // Unused address data...
                    reader.ReadInt32();

                    Int16 fieldLength = reader.ReadByte();
                    Byte decimals = 0;

                    if (fieldtype == 'N' || fieldtype == 'F')
                    {
                        decimals = reader.ReadByte();
                    }
                    else
                    {
                        fieldLength += (Int16)(reader.ReadByte() << 8);
                    }

                    Type dataType = mapFieldTypeToClrType(fieldtype, decimals, fieldLength);

                    columns[i] = new DbaseField(header, colName, dataType, fieldLength, decimals, i, offset);

                	offset += fieldLength;

                    // Move stream to next field record
                    reader.BaseStream.Seek(DbaseConstants.BytesFromEndOfDecimalInFieldRecord, SeekOrigin.Current);
                }

                header.Columns = columns;

                if (storedHeaderLength != header.HeaderLength)
                {
                    throw new InvalidDbaseFileException(
                        "Recorded header length doesn't equal computed header length.");
                }

                if (storedRecordLength != header.RecordLength)
                {
                    throw new InvalidDbaseFileException(
                        "Recorded record length doesn't equal computed record length.");
                }
            }

            return header;
        }
Esempio n. 33
0
        public static FileError RequiredFieldIsNull(this IDbaseFileRecordProblemBuilder builder, DbaseField field)
        {
            if (field == null)
            {
                throw new ArgumentNullException(nameof(field));
            }

            return(builder
                   .Error(nameof(RequiredFieldIsNull))
                   .WithParameter(new ProblemParameter("Field", field.Name.ToString()))
                   .Build());
        }
Esempio n. 34
0
        public RoadSegmentDbaseSchema()
        {
            Fields = new DbaseField[]
            {
                DbaseField.CreateNumberField(
                    new DbaseFieldName(nameof(WS_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(WS_UIDN)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(WS_GIDN)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(B_WK_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(E_WK_OIDN)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(STATUS)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLSTATUS)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(MORF)),
                    new DbaseFieldLength(3),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLMORF)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(WEGCAT)),
                    new DbaseFieldLength(5)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLWEGCAT)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(LSTRNMID)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LSTRNM)),
                    new DbaseFieldLength(80)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(RSTRNMID)),
                    new DbaseFieldLength(15),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(RSTRNM)),
                    new DbaseFieldLength(80)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEHEER)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLBEHEER)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(METHODE)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLMETHOD)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(OPNDATUM)),
                    new DbaseFieldLength(15)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINTIJD)),
                    new DbaseFieldLength(15)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(BEGINORG)),
                    new DbaseFieldLength(18)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLBGNORG)),
                    new DbaseFieldLength(64)),

                DbaseField
                .CreateNumberField(
                    new DbaseFieldName(nameof(TGBEP)),
                    new DbaseFieldLength(2),
                    new DbaseDecimalCount(0)),

                DbaseField
                .CreateCharacterField(
                    new DbaseFieldName(nameof(LBLTGBEP)),
                    new DbaseFieldLength(64))
            };
        }
Esempio n. 35
0
            /// <summary>
            /// Gets a value for the given <paramref name="row">row index</paramref> and 
            /// <paramref name="column">column index</paramref>.
            /// </summary>
            /// <param name="row">
            /// Index of the row to retrieve value from. Zero-based.
            /// </param>
            /// <param name="column">
            /// Index of the column to retrieve value from. Zero-based.
            /// </param>
            /// <returns>
            /// The value at the given (row, column).
            /// </returns>
            /// <exception cref="ObjectDisposedException">
            /// Thrown when the method is called and 
            /// Object has been disposed.
            /// </exception>
            /// <exception cref="InvalidDbaseFileOperationException">
            /// Thrown if this reader is 
            /// closed (check <see cref="IsOpen"/> before calling), or if the column is an 
            /// unsupported type.
            /// </exception>
            /// <exception cref="ArgumentOutOfRangeException">
            /// Thrown if <paramref name="row"/> is 
            /// less than 0 or greater than <see cref="RecordCount"/> - 1.
            /// </exception>
            internal Object GetValue(UInt32 row, DbaseField column)
            {
                ensureCurrentValues(row);

                if (_currentRowValues[column.Ordinal] is Exception)
                {
                    throw (Exception)_currentRowValues[column.Ordinal];
                }

                return _currentRowValues[column.Ordinal];
            }