Пример #1
0
        static void Main(string[] args)
        {
            Dictionary <string, List <string> > admin1codes;
            Dictionary <string, List <string> > admin2codes;
            Dictionary <string, List <string> > countries;
            Dictionary <string, List <string> > features;
            List <string> filters;

            FlagParser.ContinueOnError = true;
            FlagParser.Parse(args);
            bool help = FlagParser.BoolFlag("help", false, false);

            if (help || args.Length == 0)
            {
                DisplayUsage();
                return;
            }
            // process input flags
            string admin1File  = FlagParser.StringFlag("admin1", string.Empty, true);
            string admin2File  = FlagParser.StringFlag("admin2", string.Empty, true);
            string countryFile = FlagParser.StringFlag("countries", string.Empty, true);
            string featureFile = FlagParser.StringFlag("feature", string.Empty, true);
            string input       = FlagParser.StringFlag("input", string.Empty, true);
            string output      = FlagParser.StringFlag("output", string.Empty, true);
            string filter      = FlagParser.StringFlag("filter", string.Empty, false);
            string outputType  = FlagParser.StringFlag("type", "default", false);

            if (FlagParser.Errors.Count > 0)
            {
                foreach (var e in FlagParser.Errors)
                {
                    Console.WriteLine(e);
                }
                return;
            }

            // read admin1 codes
            admin1codes = ReadAdmin1File(admin1File);
            if (admin1codes == null)
            {
                return;
            }

            // read admin2 codes
            admin2codes = ReadAdmin2File(admin2File);
            if (admin2codes == null)
            {
                return;
            }

            // read country codes
            countries = ReadCountryFile(countryFile);
            if (countries == null)
            {
                return;
            }

            // read feature codes
            features = ReadFeatureFile(featureFile);
            if (features == null)
            {
                return;
            }

            // put filters as list
            filters = new List <string>();
            var fltrs = filter.Split(new char[] { ',' });

            foreach (var fltr in fltrs)
            {
                filters.Add(fltr);
            }

            switch (outputType)
            {
            case "full-structured":
                GenerateFullStructuredOutput(input, output, features, filters, countries, admin1codes, admin2codes);
                break;

            case "full-flat":
            default:
                GenerateDefaultOutput(input, output, features, filters, countries, admin1codes, admin2codes);
                break;
            }
        }