/// <summary> /// Searches for nearest venues based on provided location. If authenticated user, gets venues with friend's checkins /// </summary> /// <param name="location">location where to search for venues</param> /// <param name="accessToken">access token of authenticated user</param> /// <returns>List of nearest places</returns> public List <FPlace> SearchPlaces(Models.Location location, string accessToken) { if (location == null) { throw new ArgumentNullException("location"); } Dictionary <string, string> parameters = new Dictionary <string, string>(); parameters.Add("ll", location.ToString()); parameters.Add("limit", "50"); parameters.Add("radius", "5000"); List <Checkin> friendsCheckins = GetFriendsRecentCheckins(accessToken); List <Venue> venues = null; try { venues = sharpSquare.SearchVenues(parameters); } catch (WebException webEx) { throw new InvalidOperationException("Bad location data"); } return(TransformerHelpers.TransformToFPlaces(venues, friendsCheckins)); }
public HttpResponseMessage Get([FromUri] Models.Location location) { if (!string.IsNullOrEmpty(location.ToString())) { try { var places = client.SearchPlaces(location, HttpContext.Current.Session["AccessToken"] as string); return(Request.CreateResponse <List <FPlace> >(HttpStatusCode.OK, places, "application/json")); } catch (InvalidOperationException ioEx) { return(Request.CreateResponse(HttpStatusCode.BadRequest, ioEx.Message)); } catch (ArgumentNullException anEx) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Bad location data")); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message)); } } else { return(Request.CreateResponse(HttpStatusCode.NotFound, "Empty location")); } }