Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }