Esempio n. 1
0
        public PlacesNearbySearchResponse NearbySearch(double lat, double lgn)
        {
            var response = new PlacesNearbySearchResponse();

            try
            {
                var AppKey = new ConfigurationBuilder().AddJsonFile("application.default.json").Build().GetSection("AppSettings")["ApiKey"];

                var request = new PlacesNearBySearchRequest
                {
                    Key      = AppKey.ToString(),//this.ApiKey,
                    Location = new Location()
                    {
                        Latitude = lat, Longitude = lgn
                    },
                    Radius = 1000
                };

                HttpEngine <PlacesNearBySearchRequest, PlacesNearbySearchResponse> httpResponse
                    = new HttpEngine <PlacesNearBySearchRequest, PlacesNearbySearchResponse>();

                response = httpResponse.Query(request);
            }
            catch (Exception ex)
            {
                Trace.WriteLine("Exception during geting places data: " +
                                ex.ToString());
            }
            return(response);
        }
Esempio n. 2
0
        public void PlacesTextSearchWhenPageTokenTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = this.ApiKey,
                Location = new Coordinate(51.491431, -3.16668),
                Radius   = 1000
            };

            var response = GooglePlaces.NearBySearch.Query(request);

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.NextPageToken);

            var requestNextPage = new PlacesNearBySearchRequest
            {
                Key       = this.ApiKey,
                PageToken = response.NextPageToken
            };

            Thread.Sleep(1500);

            var responseNextPage = GooglePlaces.NearBySearch.Query(requestNextPage);

            Assert.IsNotNull(responseNextPage);
            Assert.AreNotEqual(response.Results.FirstOrDefault()?.PlaceId, responseNextPage.Results.FirstOrDefault()?.PlaceId);
        }
Esempio n. 3
0
        public void PlacesNearBySearchWhenPageTokenTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = this.ApiKey,
                Location = new Location(51.491431, -3.16668),
                Radius   = 1000,
                Type     = SearchPlaceType.School
            };

            var response = GooglePlaces.NearBySearch.Query(request);

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.NextPageToken);

            var requestNextPage = new PlacesNearBySearchRequest
            {
                Key       = this.ApiKey,
                PageToken = response.NextPageToken
            };

            var responseNextPage = GooglePlaces.NearBySearch.Query(requestNextPage);

            Assert.IsNotNull(responseNextPage);
            Assert.AreNotEqual(response.Results.FirstOrDefault()?.PlaceId, responseNextPage.Results.FirstOrDefault()?.PlaceId);
        }
        public async Task <ActionResult <GoogleApi.Entities.Places.BasePlacesResponse> > ResultDataRestaurant(String keySearch)
        {
            if (keySearch == null)
            {
                keySearch = "";
            }

            //  Make cache data
            if (cacheData.ContainsKey(keySearch) == false)
            {
                PlacesNearBySearchRequest r = new PlacesNearBySearchRequest();
                r.Key      = "AIzaSyBIZbXFcjf_Bqt5rYoud1mBuoYf3HpBVTo";
                r.Type     = GoogleApi.Entities.Places.Search.Common.Enums.SearchPlaceType.Restaurant;
                r.Radius   = 5000;
                r.Name     = keySearch;
                r.Location = new GoogleApi.Entities.Places.Search.NearBy.Request.Location(13.800, 100.5081204);
                var _response = GoogleApi.GooglePlaces.NearBySearch.Query(r);
                cacheData.Add(keySearch, _response);
                return(_response);
            }
            else
            {
                return(cacheData[keySearch]);
            }
        }
Esempio n. 5
0
        public void PlacesNearBySearchWhenAsyncAndTimeoutTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = this.ApiKey,
                Location = new Location(51.491431, -3.16668),
                Radius   = 500,
                Type     = SearchPlaceType.School
            };

            var exception = Assert.Throws <AggregateException>(() =>
            {
                var result = GooglePlaces.NearBySearch.QueryAsync(request, TimeSpan.FromMilliseconds(1)).Result;
                Assert.IsNull(result);
            });

            Assert.IsNotNull(exception);
            Assert.AreEqual(exception.Message, "One or more errors occurred.");

            var innerException = exception.InnerException;

            Assert.IsNotNull(innerException);
            Assert.AreEqual(innerException.GetType(), typeof(TaskCanceledException));
            Assert.AreEqual(innerException.Message, "A task was canceled.");
        }
        public PlacesNearbySearchResponse NearbySearchTest()
        {
            //Arrange
            var response = new PlacesNearbySearchResponse();
            var request  = new PlacesNearBySearchRequest
            {
                Key      = "AIzaSyB_4x15ATP7Br_fRJpb215UGhsL519cwPA",
                Location = new Location()
                {
                    Latitude = 45.8057017, Longitude = 15.9205017
                },
                Radius = 1000
            };

            HttpEngine <PlacesNearBySearchRequest, PlacesNearbySearchResponse> httpResponse
                = new HttpEngine <PlacesNearBySearchRequest, PlacesNearbySearchResponse>();

            // Act
            response = httpResponse.Query(request);

            // Assert
            Assert.IsNotNull(response);


            return(response);
        }
Esempio n. 7
0
        public async Task <List <ItemPlace> > Start()
        {
            PlacesNearBySearchRequest s = new PlacesNearBySearchRequest();

            _nearby = new LocatorNearBy();
            var res = await _nearby.GetNearByLocations(s);

            return(res);
        }
Esempio n. 8
0
        public void PlacesNearBySearchWhenApiKeyIsStringEmptyTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key = string.Empty
            };

            var exception = Assert.Throws <ArgumentException>(() => GooglePlaces.NearBySearch.Query(request));

            Assert.AreEqual(exception.Message, "ApiKey must be provided");
        }
        //恩旗
        internal Task <PlacesNearbySearchResponse> GetWorkoutPlaces(string keyword, GeoCoordinate coord)
        {
            PlacesNearBySearchRequest placeRequest = new PlacesNearBySearchRequest();

            placeRequest.Key      = "AIzaSyAE3Hi6N9QONHypztdZAvYkdTIOXdnzNE4";
            placeRequest.Language = GoogleApi.Entities.Common.Enums.Language.ChineseTraditional;
            placeRequest.Keyword  = keyword;
            placeRequest.Location = new Location(coord.Latitude, coord.Longitude);
            placeRequest.Radius   = 2000d;
            return(GoogleApi.GooglePlaces.NearBySearch.QueryAsync(placeRequest));
        }
Esempio n. 10
0
        public void PlacesNearBySearchWhenLocationIsNullTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = this.ApiKey,
                Location = null
            };

            var exception = Assert.Throws <ArgumentException>(() => GooglePlaces.NearBySearch.Query(request));

            Assert.AreEqual(exception.Message, "Location is required.");
        }
Esempio n. 11
0
        public void GetQueryStringParametersTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = "abc",
                Location = new Location(0, 0),
                Radius   = 5000,
                Keyword  = "test"
            };

            Assert.DoesNotThrow(() => request.GetQueryStringParameters());
        }
        public IEnumerable <string> Get()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = null,
                Location = new Location(0, 0),
                Radius   = 5000,
                Keyword  = "test"
            };

            return(new string[] { "value1", "value2" });
        }
Esempio n. 13
0
        public void PlacesNearBySearchWhenRadiusIsNullTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = this.ApiKey,
                Location = new Location(0, 0),
                Radius   = null
            };

            var exception = Assert.Throws <ArgumentException>(() => GooglePlaces.NearBySearch.Query(request));

            Assert.AreEqual(exception.Message, "Radius is required, when RankBy is not Distance");
        }
Esempio n. 14
0
        public void PlacesNearBySearchWhenRadiusIsNullTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = this.apiKey,
                Location = new Location(51.491431, -3.16668),
                Radius   = null
            };

            var exception = Assert.Throws <ArgumentException>(() => GooglePlaces.NearBySearch.Query(request));

            Assert.AreEqual(exception.Message, "Radius must not be null when RankBy is not Distance");
        }
Esempio n. 15
0
        public void PlacesNearBySearchWhenRankByDistanceAndNameIsNullAndKeywordIsNullAndTypeIsNullTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = this.ApiKey,
                Location = new Location(51.491431, -3.16668),
                Rankby   = Ranking.Distance
            };

            var exception = Assert.Throws <ArgumentException>(() => GooglePlaces.NearBySearch.Query(request));

            Assert.AreEqual(exception.Message, "Keyword or Name or Type is required, If rank by distance.");
        }
        public void ConstructorDefaultTest()
        {
            var request = new PlacesNearBySearchRequest();

            Assert.IsNull(request.Type);
            Assert.IsNull(request.Radius);
            Assert.IsNull(request.Location);
            Assert.IsNull(request.Minprice);
            Assert.IsNull(request.Maxprice);
            Assert.IsFalse(request.OpenNow);
            Assert.AreEqual(Language.English, request.Language);
            Assert.AreEqual(Ranking.Prominence, request.Rankby);
        }
Esempio n. 17
0
        public void PlacesNearBySearchWhenRadiusIsGereaterThanFiftyThousandTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = this.ApiKey,
                Location = new Location(51.491431, -3.16668),
                Radius   = 50001
            };

            var exception = Assert.Throws <ArgumentException>(() => GooglePlaces.NearBySearch.Query(request));

            Assert.AreEqual(exception.Message, "Radius must be greater than or equal to 1 and less than or equal to 50.000.");
        }
Esempio n. 18
0
        // GET: api/Places
        public object Get(double latitude = 2.92105, double longitute = 101.66700, int radius = 1000)
        {
            PlacesNearBySearchRequest request = new PlacesNearBySearchRequest
            {
                Key      = ConfigurationManager.AppSettings["GoogleApiKey"],
                Location = new Location(latitude, longitute),
                Radius   = radius,
                Type     = SearchPlaceType.Restaurant
            };
            var result = GooglePlaces.NearBySearch.Query(request);

            return(Json(result));
        }
Esempio n. 19
0
        public void PlacesNearBySearchWhenKeyIsStringEmptyTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = string.Empty,
                Location = new Location(0, 0),
                Radius   = 10
            };

            var exception = Assert.Throws <ArgumentException>(() => GooglePlaces.NearBySearch.Query(request));

            Assert.AreEqual(exception.Message, "Key is required.");
        }
Esempio n. 20
0
        public void GetUriWhenPageTokenTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key       = "abc",
                PageToken = "abc"
            };

            var uri = request.GetUri();

            Assert.IsNotNull(uri);
            Assert.AreEqual($"/maps/api/place/nearbysearch/json?key={request.Key}&pagetoken={request.PageToken}", uri.PathAndQuery);
        }
Esempio n. 21
0
        public void GetUriTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = "abc",
                Location = new Location(1, 1),
                Radius   = 50
            };

            var uri = request.GetUri();

            Assert.IsNotNull(uri);
            Assert.AreEqual($"/maps/api/place/nearbysearch/json?key={request.Key}&rankby={request.Rankby.ToString().ToLower()}&language={request.Language.ToCode()}&location={Uri.EscapeDataString(request.Location.ToString())}&radius={request.Radius}", uri.PathAndQuery);
        }
Esempio n. 22
0
        public void PlacesNearBySearchTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = this.ApiKey,
                Location = new Coordinate(51.491431, -3.16668),
                Radius   = 1000
            };

            var response = GooglePlaces.NearBySearch.Query(request);

            Assert.IsNotNull(response);
            Assert.AreEqual(Status.Ok, response.Status);
        }
Esempio n. 23
0
        public void PlacesNearBySearchWhenRankByDistanceAndRadiusIsNotNullTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = this.ApiKey,
                Location = new Location(51.491431, -3.16668),
                Radius   = 50001,
                Rankby   = Ranking.Distance
            };

            var exception = Assert.Throws <ArgumentException>(() => GooglePlaces.NearBySearch.Query(request));

            Assert.AreEqual(exception.Message, "Radius cannot be specified, when using RankBy distance");
        }
Esempio n. 24
0
        public void PlacesNearBySearchWhenAsyncTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = this.ApiKey,
                Location = new Location(51.491431, -3.16668),
                Radius   = 500,
                Type     = SearchPlaceType.School
            };

            var response = GooglePlaces.NearBySearch.QueryAsync(request).Result;

            Assert.IsNotNull(response);
            Assert.AreEqual(Status.Ok, response.Status);
        }
        public void GetQueryStringParametersWhenKeyIsStringEmptyTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key = string.Empty
            };

            var exception = Assert.Throws <ArgumentException>(() =>
            {
                var parameters = request.GetQueryStringParameters();
                Assert.IsNull(parameters);
            });

            Assert.AreEqual(exception.Message, "'Key' is required");
        }
Esempio n. 26
0
        public void GetUriWhenMaxpriceTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = "abc",
                Location = new Location(1, 1),
                Radius   = 50,
                Maxprice = PriceLevel.Free
            };

            var uri = request.GetUri();

            Assert.IsNotNull(uri);
            Assert.AreEqual($"/maps/api/place/nearbysearch/json?key={request.Key}&rankby={request.Rankby.ToString().ToLower()}&language={request.Language.ToCode()}&location={Uri.EscapeDataString(request.Location.ToString())}&radius={request.Radius}&maxprice={((int)request.Maxprice.GetValueOrDefault()).ToString()}", uri.PathAndQuery);
        }
        public async Task <List <ItemPlace> > GetNearByLocations(PlacesNearBySearchRequest filter)
        {
            List <ItemPlace> result = new List <ItemPlace>();

            try
            {
                result = await _apiRequest.RequestPlaces();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return(result);
        }
        public void GetQueryStringParametersTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = "key",
                Location = new Coordinate(0, 0),
                Radius   = 100
            };

            var queryStringParameters = request.GetQueryStringParameters();

            Assert.IsNotNull(queryStringParameters);

            var key         = queryStringParameters.FirstOrDefault(x => x.Key == "key");
            var keyExpected = request.Key;

            Assert.IsNotNull(key);
            Assert.AreEqual(keyExpected, key.Value);

            var keyword         = queryStringParameters.FirstOrDefault(x => x.Key == "keyword");
            var keywordExpected = request.Keyword;

            Assert.IsNotNull(keyword);
            Assert.AreEqual(keywordExpected, keyword.Value);

            var language = queryStringParameters.FirstOrDefault(x => x.Key == "language");

            Assert.IsNotNull(language);
            Assert.AreEqual("en", language.Value);

            var rankby         = queryStringParameters.FirstOrDefault(x => x.Key == "rankby");
            var rankbyExpected = Ranking.Prominence.ToString().ToLower();

            Assert.IsNotNull(rankby);
            Assert.AreEqual(rankbyExpected, rankby.Value);

            var location         = queryStringParameters.FirstOrDefault(x => x.Key == "location");
            var locationExpected = request.Location.ToString();

            Assert.IsNotNull(location);
            Assert.AreEqual(locationExpected, location.Value);

            var radius         = queryStringParameters.FirstOrDefault(x => x.Key == "radius");
            var radiusExpected = request.Radius.ToString();

            Assert.IsNotNull(radius);
            Assert.AreEqual(radiusExpected, radius.Value);
        }
        public void GetQueryStringParametersWhenLocationIsNullTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = "key",
                Location = null
            };

            var exception = Assert.Throws <ArgumentException>(() =>
            {
                var parameters = request.GetQueryStringParameters();
                Assert.IsNull(parameters);
            });

            Assert.AreEqual(exception.Message, "'Location' is required");
        }
Esempio n. 30
0
        public void GetUriWhenTypeTest()
        {
            var request = new PlacesNearBySearchRequest
            {
                Key      = "abc",
                Location = new Location(1, 1),
                Radius   = 50,
                Type     = SearchPlaceType.Accounting
            };

            var uri       = request.GetUri();
            var attribute = request.Type?.GetType().GetMembers().FirstOrDefault(x => x.Name == request.Type.ToString())?.GetCustomAttribute <EnumMemberAttribute>();

            Assert.IsNotNull(uri);
            Assert.AreEqual($"/maps/api/place/nearbysearch/json?key={request.Key}&rankby={request.Rankby.ToString().ToLower()}&language={request.Language.ToCode()}&location={Uri.EscapeDataString(request.Location.ToString())}&radius={request.Radius}&type={attribute?.Value.ToLower()}", uri.PathAndQuery);
        }