示例#1
0
        public static IEnumerable<AddressPartReduction> ParseItems(Stream ms)
        {
            DbfFile dbfFile = new DbfFile(Encoding.GetEncoding(866));
            dbfFile.Open(ms);
            try
            {
                DbfHeader header = dbfFile.Header;
                dynamic headerObj = new
                {
                    LEVEL = FindColumnOrThrow(header, "LEVEL", maxLen: 5),
                    SCNAME = FindColumnOrThrow(header, "SCNAME", maxLen: 10),
                    SOCRNAME = FindColumnOrThrow(header, "SOCRNAME", maxLen: 29),
            //                    KOD_T_ST = FindColumnOrThrow(header, "KOD_T_ST", maxLen: 3),
                };

                IEnumerable<DbfRecord> records = EnumRecords(dbfFile, header);

                foreach (var record in records)
                {
                    var item = new AddressPartReduction()
                    {
                        Level = int.Parse(record[headerObj.LEVEL].Trim()),
                        Short = record[headerObj.SCNAME].Trim(),
                        Name = record[headerObj.SOCRNAME].Trim(),
            //                        KOD_T_ST = record[headerObj.KOD_T_ST].Trim(),
                    };
                    yield return item;
                }
            }
            finally
            {
                dbfFile.Close();
            }
        }
示例#2
0
 private static void Insert(Dictionary<int, Dictionary<string, AddressPartReduction>> reductions, AddressPartReduction d)
 {
     if (!reductions.ContainsKey(d.Level))
     {
         reductions.Add(d.Level, new Dictionary<string, AddressPartReduction>());
     }
     var dict = reductions[d.Level];
     var reduction = d.Short.ToLower();
     dict.Add(reduction, d);
 }
示例#3
0
 private static void EqualTo(AddressPartReduction actual, AddressPartReduction expected)
 {
     Assert.IsNotNull(actual);
     Assert.That(actual.Level, Is.EqualTo(expected.Level));
     Assert.That(actual.Short, Is.EqualTo(expected.Short));
     Assert.That(actual.Name, Is.EqualTo(expected.Name));
 }