public AddressEM CreateAddressByAddressComponents(Result geocodeResult) { var addressComponents = geocodeResult.AddressComponents; var country = addressComponents.FirstOrDefault(c => c.Types.Contains(AddressComponentType.Country)); var area1 = addressComponents.LastOrDefault(c => c.Types.Contains(AddressComponentType.Administrative_Area_Level_1)); var area2 = addressComponents.FirstOrDefault(c => c.Types.Contains(AddressComponentType.Administrative_Area_Level_2)); var locality = addressComponents.LastOrDefault(c => c.Types.Contains(AddressComponentType.Locality)); var street = addressComponents.FirstOrDefault(c => c.Types.Contains(AddressComponentType.Route)); var house = addressComponents.FirstOrDefault(c => c.Types.Contains(AddressComponentType.Street_Number)); var result = new AddressEM { Country = country?.LongName, Province = area1?.LongName, Area = area2?.LongName, Locality = locality?.LongName, Street = street?.LongName, House = house?.LongName, Latitude = geocodeResult.Geometry.Location.Latitude, Longitude = geocodeResult.Geometry.Location.Longitude }; return(result); }
public AddressEM CreateAddressByAddressData(AddressData addressData) { var result = new AddressEM { Country = addressData.Country, Province = addressData.RegionWithType, Area = addressData.AreaWithType, Locality = addressData.CityWithType, Street = addressData.StreetWithType, House = addressData.House }; if (string.IsNullOrEmpty(result.Locality)) { result.Locality = addressData.SettlementWithType; } if (!string.IsNullOrEmpty(addressData.GeoLat)) { result.Latitude = Double.Parse(addressData.GeoLat, CultureInfo.InvariantCulture); } if (!string.IsNullOrEmpty(addressData.GeoLon)) { result.Longitude = Double.Parse(addressData.GeoLon, CultureInfo.InvariantCulture); } return(result); }
public AddressEM CreateAddressByGeoObject(GeoObjectType geoObject) { var addressComponents = geoObject.MetaDataProperty.GeocoderMetaData.Address.Components; var country = addressComponents.FirstOrDefault(c => c.Kind.Equals(AddressComponentKind.Country)); var province = addressComponents.LastOrDefault(c => c.Kind.Equals(AddressComponentKind.Province)); var area = addressComponents.FirstOrDefault(c => c.Kind.Equals(AddressComponentKind.Area)); var locality = addressComponents.LastOrDefault(c => c.Kind.Equals(AddressComponentKind.Locality)); var street = addressComponents.FirstOrDefault(c => c.Kind.Equals(AddressComponentKind.Street)); var house = addressComponents.FirstOrDefault(c => c.Kind.Equals(AddressComponentKind.House)); var coordinate = new Coordinate(geoObject.Point.Pos); var result = new AddressEM { Country = country?.Name, Province = province?.Name, Area = area?.Name, Locality = locality?.Name, Street = street?.Name, House = house?.Name, Latitude = coordinate.Latitude, Longitude = coordinate.Longitude }; return(result); }
public void FromExternalAddress() { var domainAddress = new AddressEM { Country = "Россия", Province = "Московская область", Area = "Москва", Locality = "Москва", District = "Северо-Восточный район", Street = "4-я Тверская-Ямская улица", House = "7", Latitude = 55.771899, Longitude = 37.597576, FormattedText = "Россия, Москва, 4-я Тверская-Ямская улица, 7", Request = "Москва 4-я Тверская улица 7" }; var ApplicationAddress = Suite.AddressService.FromExternalAddress(domainAddress); Assert.Equal(domainAddress.Country, ApplicationAddress.Country); Assert.Equal(domainAddress.Province, ApplicationAddress.Province); Assert.Equal(domainAddress.Area, ApplicationAddress.Area); Assert.Equal(domainAddress.Locality, ApplicationAddress.Locality); Assert.Equal(domainAddress.District, ApplicationAddress.District); Assert.Equal(domainAddress.Street, ApplicationAddress.Street); Assert.Equal(domainAddress.House, ApplicationAddress.House); Assert.Equal(domainAddress.Latitude, ApplicationAddress.Latitude); Assert.Equal(domainAddress.Longitude, ApplicationAddress.Longitude); Assert.Equal(domainAddress.FormattedText, ApplicationAddress.FormattedText); Assert.Equal(domainAddress.Request, ApplicationAddress.Request); }
public async Task GetAddresses() { var request = "Москв"; var externalResult = new AddressEM(); var externalListResult = new List <AddressEM> { externalResult }; Suite.AddressAPIMock .Setup(m => m.GetAddress(request)) .ReturnsAsync(externalListResult); var domainResult = new AddressDM(); var domainListResult = new List <AddressDM> { domainResult }; Suite.MappingServiceMock .Setup(m => m.Map <ICollection <AddressEM>, ICollection <AddressDM> >(externalListResult)) .Returns(domainListResult); var addresses = await Suite.AddressesRepository.GetAddresses(request, RequestPriority.UserInitiated); Suite.AddressAPIMock .Verify(m => m.GetAddress(request), Times.Once); Suite.MappingServiceMock .Verify( m => m.Map <ICollection <AddressEM>, ICollection <AddressDM> >( It.Is <List <AddressEM> >(l => l.Equals(externalListResult))), Times.Once); Assert.Equal(domainListResult, addresses); }
public AddressAM FromExternalAddress(AddressEM source) { var destination = new AddressAM(); return(MappingService.Map(source, destination)); }