private static GeoFile[] GetCountryDumps(GeoFileDownloader downloader) { var w = new WebClient(); var document = w.DownloadString(downloader.BaseUri); var countries = new Regex("href=\"([A-Z]{2}.zip)", RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.IgnoreCase) .Matches(document) .Cast<Match>() .Select(m => new GeoFile { Filename = m.Groups[1].Value, Test = (f) => ExecuteTest(f, (fn) => { return GeoFileReader.ReadExtendedGeoNames(fn).Count(); }) }); var featurecodes = new Regex("href=\"(featureCodes_[A-Z]{2}.txt)", RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.IgnoreCase) .Matches(document) .Cast<Match>() .Select(m => new GeoFile { Filename = m.Groups[1].Value, Test = (f) => ExecuteTest(f, (fn) => { return GeoFileReader.ReadFeatureCodes(fn).Count(); }) }); return countries.Union(featurecodes).OrderBy(m => m.Filename).ToArray(); }