public PlaceSearchRequest Build()
        {
            var request = _request;

            _request = CreateADefaultRequest();

            return request;
        }
        public PlaceSearchResult ByCategory(PlaceSearchRequest placeSearchRequest)
        {
            var searchRequest = _requestBuilder
                .WithUriPath("/places/bycategory")
                .WithLicenseInfo(placeSearchRequest.LicenseInfo)
                .WithStartIndex(placeSearchRequest.StartIndex)
                .WithArgument("categoryId", placeSearchRequest.CategoryId.ToString())
                .WithArgument("city", placeSearchRequest.City)
                .WithArgument("state", placeSearchRequest.State)
                .Build();

            return RetrievePlacesFor(searchRequest);
        }
        public PlaceSearchResult ByRadius(PlaceSearchRequest placeSearchRequest)
        {
            var searchRequest = _requestBuilder
                .WithUriPath("/places/byradius")
                .WithLicenseInfo(placeSearchRequest.LicenseInfo)
                .WithStartIndex(placeSearchRequest.StartIndex)
                .WithArgument("radius", placeSearchRequest.Radius.ToString(UnitedStatesCultureInfo))
                .WithArgument("latitude", placeSearchRequest.Latitude.ToString(UnitedStatesCultureInfo))
                .WithArgument("longitude", placeSearchRequest.Longitude.ToString(UnitedStatesCultureInfo))
                .WithArgument("term", placeSearchRequest.Term)
                .WithArgument("category", placeSearchRequest.CategoryId.ToString())
                .Build();

            return RetrievePlacesFor(searchRequest);
        }
        public PlaceSearchResult ByTerm(PlaceSearchRequest placeSearchRequest)
        {
            var searchRequest = _requestBuilder
                .WithUriPath("/places/byterm")
                .WithLicenseInfo(placeSearchRequest.LicenseInfo)
                .WithStartIndex(placeSearchRequest.StartIndex)
                .WithArgument("term", placeSearchRequest.Term)
                .WithArgument("city", placeSearchRequest.City)
                .WithArgument("state", placeSearchRequest.State)
                .Build();

            return RetrievePlacesFor(searchRequest);
        }
 public PlaceSearchRequestBuilder()
 {
     _request = CreateADefaultRequest();
 }
        private void WhenFindingByRadius()
        {
            _placeSearchRequest = new PlaceSearchRequest
                                      {
                                          CategoryId = CategoryId,
                                          Latitude = Latitude,
                                          LicenseInfo = _aLicenseInfo,
                                          Longitude = Longitude,
                                          Radius = Radius,
                                          Term = Term,
                                          StartIndex = StartIndex
                                      };

            _placeSearchRetrievedByProvider = _provider.ByRadius(_placeSearchRequest);
        }
        private void WhenFindingByTerm()
        {
            _placeSearchRequest = new PlaceSearchRequest
            {
                Term = Term,
                City = City,
                State = State,
                LicenseInfo = _aLicenseInfo,
                StartIndex = StartIndex
            };

            _placeSearchRetrievedByProvider = _provider.ByCategory(_placeSearchRequest);
        }