public async Task GeoFindByLocationTest(string name, IGeoAddress geoAddress, IGeoAddress geoAddressValidResult, bool shouldBeValid)
        {
            var result = await _provider.FindAsync(geoAddress.Location);

            if (shouldBeValid)
            {
                result.Should().NotBeNull();

                result.Items.Should().NotBeEmpty();

                var addressFound = result.Items.First();

                addressFound.Line1.Should().BeEquivalentTo(geoAddressValidResult.Line1);
                addressFound.Region.Should().BeEquivalentTo(geoAddressValidResult.Region);
                addressFound.Country.Should().BeEquivalentTo(geoAddressValidResult.Country);
                addressFound.Location.Should().NotBeNull();
                addressFound.Location.Latitude.Should().Be(geoAddressValidResult.Location.Latitude);
                addressFound.Location.Longitude.Should().Be(geoAddressValidResult.Location.Longitude);
            }
            else
            {
                if (result == null)
                {
                    result.Should().BeNull();
                }
                else
                {
                    result.Items.Should().BeEmpty();
                }
            }
        }
#pragma warning disable RECS0154 // Parameter is never used
        public async Task GeoFindByAddressTest(IGeoAddress geoAddress, bool shouldBeValid)
#pragma warning restore RECS0154 // Parameter is never used
        {
            var result = await _provider.FindAsync(geoAddress);

            if (shouldBeValid)
            {
                result.Should().NotBeNull();
                result.Items.Should().NotBeEmpty();

                var addressFound = result.Items.First();

                addressFound.Line1.Should().BeEquivalentTo(geoAddress.Line1);
                addressFound.Region.Should().BeEquivalentTo(geoAddress.Region);
                addressFound.Country.Should().BeEquivalentTo(geoAddress.Country);
                addressFound.Location.Should().NotBeNull();
                addressFound.Location.Latitude.Should().BeApproximately(geoAddress.Location.Latitude.Value, 1.0);
                addressFound.Location.Longitude.Should().BeApproximately(geoAddress.Location.Longitude.Value, 1.0);
            }
            else
            {
                //result.Should().BeNull();
                //result.Items.Should().BeEmpty();
            }
        }
        public async Task GeoSearchTest(string name, int distance, IGeoAddress geoAddress, IGeoAddress geoAddressValidResult, bool shouldBeValid)
        {
            var request = new GeoSearchRequest
            {
                Distance = distance,
                Name     = name,
                Address  = geoAddress
                           //AddressTypes = new List<AddressTypes> { AddressTypes.Stadium, AddressTypes.Establishment, AddressTypes.Store } <- not working right now
            };

            var result = await _provider.SearchAsync(request).ConfigureAwait(true);

            if (shouldBeValid)
            {
                result.Should().NotBeNull();

                result.Items.Should().NotBeEmpty();

                var addressFound = result.Items.First();

                if (!string.IsNullOrEmpty(geoAddressValidResult.Line1))
                {
                    addressFound.Line1.Should().BeEquivalentTo(geoAddressValidResult.Line1);
                }
                if (!string.IsNullOrEmpty(geoAddressValidResult.Line2))
                {
                    addressFound.Line2.Should().BeEquivalentTo(geoAddressValidResult.Line2);
                }
                if (!string.IsNullOrEmpty(geoAddressValidResult.Region))
                {
                    addressFound.Region.Should().BeEquivalentTo(geoAddressValidResult.Region);
                }
                if (!string.IsNullOrEmpty(geoAddressValidResult.Country))
                {
                    addressFound.Country.Should().BeEquivalentTo(geoAddressValidResult.Country);
                }

                if (geoAddressValidResult.Location != null)
                {
                    addressFound.Location.Should().NotBeNull();
                    addressFound.Location.Latitude.Should().Be(geoAddressValidResult.Location.Latitude);
                    addressFound.Location.Longitude.Should().Be(geoAddressValidResult.Location.Longitude);
                }

                if (geoAddressValidResult.Source != null)
                {
                    addressFound.Source.Should().NotBeNull();
                    addressFound.Source.ObjectID.Should().Be(geoAddressValidResult.Source.ObjectID);
                    addressFound.Source.Provider.Should().Be(geoAddressValidResult.Source.Provider);
                }
            }
            else
            {
                //result.Should().BeNull();
                //result.Items.Should().BeEmpty();
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Finds the address.
        /// </summary>
        /// <param name="geoAddress">The address.</param>
        /// <returns>Task&lt;IList&lt;IAddress&gt;&gt;.</returns>
        public Task <IGeoSearchResult> FindAddressAsync(IGeoAddress geoAddress)
        {
            var ub = new UrlBuilder(GeoCodeSourceUrl);

            var parts = new[]
            {
                geoAddress.Line1,
                geoAddress.Line2,
                geoAddress.Line3,
                geoAddress.City,
                geoAddress.Region,
                geoAddress.Country,
                geoAddress.PostalCode
            }.Where(x => !string.IsNullOrEmpty(x)).ToArray();

            ub.QueryString["key"]     = _apiKey;
            ub.QueryString["address"] = string.Join(",", parts);

            return(ExecuteQueryAsync(ub));
        }
        /// <summary>
        /// Finds the specified address.
        /// </summary>
        /// <param name="geoAddress">The address.</param>
        /// <returns>Task&lt;IList&lt;IAddress&gt;&gt;.</returns>
        public async Task <IGeoSearchResult> FindAsync(IGeoAddress geoAddress)
        {
            var result = await _wrapper.FindAddressAsync(geoAddress).ConfigureAwait(false);

            return(result);
        }
 /// <summary>
 /// Finds the specified address.
 /// </summary>
 /// <param name="geoAddress">The address.</param>
 /// <returns>Task&lt;IList&lt;IAddress&gt;&gt;.</returns>
 public Task <IGeoSearchResult> FindAsync(IGeoAddress geoAddress)
 {
     return(_wrapper.FindAddressAsync(geoAddress));
 }