public static IEnumerable <UNLOCODEEntity> Parse(string path)
        {
            using (var file = new StreamReader(path))
            {
                string line;

                while ((line = file.ReadLine()) != null)
                {
                    if (string.IsNullOrWhiteSpace(line))
                    {
                        continue;
                    }

                    if (line.TrimStart().StartsWith("#"))
                    {
                        continue;
                    }

                    var parse  = line.Split(new char[] { '\t' });
                    var entity = UNLOCODEEntity.Parse(parse);

                    yield return(entity);
                }
            }
        }
Esempio n. 2
0
        public static UNLOCODEEntity Parse(string[] parts)
        {
            var entity = new UNLOCODEEntity();

            if (parts.Length != 3)
            {
                throw new ArgumentException("Expecting at least 4 columns as input");
            }

            var country      = parts[0];
            var location     = parts[1];
            var geonameIdRaw = parts[2];

            entity.UNLOCODECode = $"{country.ToLowerInvariant()}{location.ToLowerInvariant()}";

            int geonameId;

            if (int.TryParse(geonameIdRaw, out geonameId))
            {
                entity.GeonameId = geonameId;
            }
            else
            {
                throw new ArgumentException("Could not parse Geonames ID");
            }

            return(entity);
        }