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);
            }
        }
Ejemplo n.º 3
0
        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;
 }