Пример #1
0
        public IExtractorDatabaseReader Extract()
        {
            // start with a clean slate (in case this is an update rather than an initial extraction)
            _extractorDatabase.DropAndReCreate();

            // a list of files which contain data
            // see ftp://ftp.iana.org/tz/code/Makefile
            var dataFileNameList = new []
            {
                // YDATA
                "africa",
                "antarctica",
                "asia",
                "australasia",
                "europe",
                "northamerica",
                "southamerica",
                "pacificnew",
                "etcetera",
                "backward",
                // TABDATA
                "zone.tab",
                // OTHER
                "backzone"
            };

            foreach (var dataFileName in dataFileNameList)
            {
                var dataFile =
                    _fileSource.SingleOrDefault(
                        file =>
                        file.Name.Equals(
                            dataFileName,
                            StringComparison.InvariantCultureIgnoreCase));

                if (null != dataFile)
                {
                    _parser.Parse(dataFile, _extractorDatabase);
                }
            }

            return(new ExtractorDatabaseReader(_extractorDatabase));
        }