/// <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));
        }
Exemplo n.º 2
0
 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"));
     }
 }