public PlacesResponse GetAllPlaces(PlaceSearchRequest request) { var validator = new PlaceSearchValidator().Validate(request).ToResponse(); if (!validator.Result) { return new PlacesResponse { Errors = validator.Errors, Result = false } } ; var response = new PlacesResponse(); try { response = _placeRepository.GetAllPlaces(request); } catch (Exception ex) { _logger.Error(ExceptionMessages.GetPlacesException, ex); response.Result = false; response.Errors.Add(new ResponseError { Name = "GetEventsException", Error = ExceptionMessages.GetPlacesException }); return(response); } return(response); }
public PlaceSearchRequest Build() { var request = _request; _request = CreateADefaultRequest(); return(request); }
public void ExecuteRectangeSearch() { var baiduClient = ClientCreator.Create(); var rectangeModel = new PlaceRectangeModel { Query = "银行", Bounds = "39.915,116.404,39.975,116.414" }; var req = new PlaceSearchRequest <PlaceRectangeModel>(rectangeModel); PlaceSearchResponse resp = baiduClient.Execute(req); resp.Status.ShouldBe(0); resp.Message.ShouldBe("ok"); }
public void ExecuteCircumSearch() { var baiduClient = ClientCreator.Create(); var circumModel = new PlaceCircumModel { Query = "银行", Location = "39.915,116.404", Radius = "2000" }; var req = new PlaceSearchRequest <PlaceCircumModel>(circumModel); PlaceSearchResponse resp = baiduClient.Execute(req); resp.Status.ShouldBe(0); resp.Message.ShouldBe("ok"); }
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)); }
private void WhenFindingByRadius() { _placeSearchRequest = new PlaceSearchRequest { CategoryId = CategoryId, Latitude = Latitude, LicenseInfo = _aLicenseInfo, Longitude = Longitude, Radius = Radius, Term = Term, StartIndex = StartIndex }; _placeSearchRetrievedByProvider = _provider.ByRadius(_placeSearchRequest); }
public void ExecuteRegionSearch() { var baiduClient = ClientCreator.Create(); var regionModel = new PlaceRegionModel { Query = "ATM机", Tag = "银行", Region = "杭州" }; var req = new PlaceSearchRequest <PlaceRegionModel>(regionModel); PlaceSearchResponse resp = baiduClient.Execute(req); resp.Status.ShouldBe(0); resp.Message.ShouldBe("ok"); resp.Results.Count.ShouldBe(10); }
/// <summary> /// Gets all places /// </summary> /// <param name="request"></param> /// <returns></returns> public IEnumerable <Place> GetPlaces(PlaceSearchRequest request) { var response = GetAsync($"places?name={request.Name}&city={request.City}" + $"&location={request.Location}" + $"&limit={request.Limit}" + $"&offset={request.Offset}").Result; var places = new List <Place>(); if (!response.IsSuccessStatusCode) { return(places); } var responseDate = response.Content.ReadAsStringAsync().Result; places = JsonConvert.DeserializeObject <List <Place> >(responseDate); return(places); }
public IActionResult GetAllPlaces(string name, string location, string city, int offset, int limit = 10) { var request = new PlaceSearchRequest() { Name = name, Location = location, City = city, Limit = limit, Offset = offset }; _logger.Information(request.ToString()); var response = _placeServices.GetAllPlaces(request); if (!response.Result) { return(BadRequest(response.Errors)); } if (response.Places.Count == 0) { return(NotFound(request)); } return(Ok(response.Places)); }
public PlacesResponse GetAllPlaces(PlaceSearchRequest placeRequest) { Expression <Func <string, string, bool> > startsWith = (p, e) => p.ToLower().StartsWith(e.ToLower()); Expression <Func <string, string, bool> > contains = (p, e) => p.ToLower().Contains(e.ToLower()); using (var db = new EventSourceDbContext(_contextOptions)) { IQueryable <Place> placeQuery = db.Places; placeQuery = !string.IsNullOrEmpty(placeRequest.Name) ? placeQuery.Where(p => startsWith.Compile()(p.Name, placeRequest.Name)) : !string.IsNullOrEmpty(placeRequest.City) ? placeQuery.Where(p => contains.Compile()(p.City, placeRequest.City)) : !string.IsNullOrEmpty(placeRequest.Location) ? placeQuery.Where(p => contains.Compile()(p.Location, placeRequest.Location)) : placeQuery; var places = placeQuery .OrderBy(p => p.Name) .Skip(placeRequest.Offset) .Take(placeRequest.Limit) .ToList(); return(new PlacesResponse { Places = places, TotalPlaces = places.Count() }); } }
public PlaceSearchRequestBuilder() { _request = CreateADefaultRequest(); }