static ZipCodeList() { IEnumerable<string> entries = Properties.Resources.ZipCodeTable.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (var entry in entries) { var parts = entry.Split(',').Select(part => part.Trim('"')).ToList(); // Make sure we create the zip code before the address because the address will try to look up // the zip code var zipCode = new ZipCode(parts[0], new Geocode(double.Parse(parts[1]), double.Parse(parts[2]))); ZipCodeLookup[zipCode.Code] = zipCode; var address = new Address(null, parts[3], parts[4], parts[0], parts[5]); Addresses.Add(address); } }
static ZipCodeList() { IEnumerable <string> entries = Properties.Resources.ZipCodeTable.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (var entry in entries) { var parts = entry.Split(',').Select(part => part.Trim('"')).ToList(); // Make sure we create the zip code before the address because the address will try to look up // the zip code var zipCode = new ZipCode(parts[0], new Geocode(double.Parse(parts[1]), double.Parse(parts[2]))); ZipCodeLookup[zipCode.Code] = zipCode; var address = new Address(null, parts[3], parts[4], parts[0], parts[5]); Addresses.Add(address); } }
public static IEnumerable <Address> Search(string streetAddress, string city, string state, string zipCode, bool geocode) { var addressLookup = new AddressLookup(); var addresses = new List <Address>(); if (string.IsNullOrEmpty(streetAddress)) { if (!string.IsNullOrEmpty(city) && !string.IsNullOrEmpty(state) && CityList.IsCity(city, new State(state))) { var citySearched = CityList.GetCity(city, new State(state)); var address = addressLookup.GetAddressFromCity(citySearched); if (!string.IsNullOrEmpty(zipCode)) { address.ZipCode = ZipCodeList.GetZipCode(zipCode); } addresses.Add(address); } else if (!string.IsNullOrEmpty(zipCode) && ZipCodeList.IsZipCode(zipCode)) { ZipCode zipCodeSearched = ZipCodeList.GetZipCode(zipCode); addresses.Add(addressLookup.GetAddressFromZipCode(zipCodeSearched)); } } if (addresses.Count == 0) { if (geocode) { var response = Geocoder.Search(FormatAddress(streetAddress, city, state, zipCode)); addresses.Add(response); } else { addresses.AddRange(Address.Search(FormatAddress(streetAddress, city, state, zipCode), geocode)); } } return(addresses); }
public Address GetAddressFromZipCode(ZipCode zipCode) { var address = ZipCodeLookup[zipCode]; return new Address(address.StreetAddress, address.City.Name, address.State.Name, address.ZipCode.Code, address.County.Name, address.ZipCode.Geocode); }
public void GeocodeAddress() { var response = Geocoder.Geocode(this); if (!string.IsNullOrEmpty(response.StreetAddress)) { StreetAddress = response.StreetAddress; } if (response.City != null) { City = response.City; } if (response.County != null) { County = response.County; } if (response.State != null) { State = response.State; } if (response.ZipCode != null) { ZipCode = response.ZipCode; } Geocode = response.Geocode; }