Beispiel #1
0
 protected string GetCountryTranslation(int?countryId)
 {
     return(countryId == null
                         ? string.Empty
                         : StyleContext.GetTranslation(DomainValueRepository.GetCountry(countryId.Value).NameCode));
 }
Beispiel #2
0
        public Address GetAddress(string address, string countryIso2Code = "ua", string language = "uk")
        {
            var     googleAddress = GetGoogleGeoCodeAddressResponse(address, countryIso2Code, language);
            Address result        = Address.Empty();

            if (googleAddress.Status.ToUpper() == "OK")
            {
                var addrComponents          = googleAddress.Results[0].AddressComponents;
                var addressComponentCountry = addrComponents.FirstOrDefault(addr => addr.Types.Contains(Country));

                if (addressComponentCountry != null)
                {
                    var country = _domainValueRepository.GetCountry(addressComponentCountry.ShortName);
                    if (country != null)
                    {
                        result.CountryId = country.Id;
                    }
                }

                var city = addrComponents.FirstOrDefault(addr => addr.Types.Contains(City));
                if (city != null)
                {
                    result.City = city.ShortName;
                }

                var street = addrComponents.FirstOrDefault(addr => addr.Types.Contains(Street));
                if (street != null)
                {
                    result.Street = street.ShortName;
                }

                var number = addrComponents.FirstOrDefault(addr => addr.Types.Contains(StreetNumber));
                if (number != null)
                {
                    result.Number = number.ShortName;
                }

                var postalCode = addrComponents.FirstOrDefault(addr => addr.Types.Contains(PostalCode));
                if (postalCode != null)
                {
                    result.PostalCode = postalCode.ShortName;
                }

                var geometry = googleAddress.Results[0].Geometry;

                var latitude = geometry.Location.Lat;

                if (latitude != null)
                {
                    double lat;
                    double.TryParse(latitude, NumberStyles.Float, CultureInfo.InvariantCulture, out lat);
                    result.Latitude = lat;
                }

                var longitude = geometry.Location.Lng;

                if (longitude != null)
                {
                    double lng;
                    double.TryParse(longitude, NumberStyles.Float, CultureInfo.InvariantCulture, out lng);
                    result.Longitude = lng;
                }

                var formattedAddress = googleAddress.Results[0].FormattedAddress;
                result.FormattedAddress = formattedAddress;
            }

            return(result);
        }