public static LocationRootObject LoadLocation(string query, string secondquery, string town, int radius)
        {
            string url = "";

            if (secondquery == null)
            {
                url = $"https://maps.googleapis.com/maps/api/place/nearbysearch/json?location={town}" +
                      $"&radius={radius}&type={query}&key=AIzaSyA5jOPVeNOqU6lLscGSE3t665ejKNjrGQI";
            }
            else
            {
                url = $"https://maps.googleapis.com/maps/api/place/nearbysearch/json?pagetoken=" +
                      $"{ secondquery }&key=AIzaSyA5jOPVeNOqU6lLscGSE3t665ejKNjrGQI";
            }
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                var response = client.GetAsync(url).GetAwaiter().GetResult();
                if (response.IsSuccessStatusCode)
                {
                    var responseContent     = response.Content;
                    LocationRootObject root = responseContent.ReadAsAsync <LocationRootObject>().GetAwaiter().GetResult();
                    return(root);
                }
                else
                {
                    throw new Exception(response.ReasonPhrase);
                }
            }
        }
示例#2
0
        public void LoadRoot(GeneratorContext context, string query)
        {
            var locations           = new List <Miejsce>();
            LocationRootObject root = LocationProcessor.LoadLocation(query);

            foreach (var i in root.results)
            {
                locations.Add(new Miejsce()
                {
                    MiejsceId = i.place_id, Lat = i.geometry.location.lat, Lng = i.geometry.location.lng, Name = i.name, visitCount = 0, type = query
                });
            }
            locations.ForEach(g => context.Locations.AddOrUpdate(g));
            context.SaveChanges();
        }
        public void LoadRoot(GeneratorContext context, string query, string town, int radius)
        {
            string nextPageToken = null;
            var    locations     = new List <Location>();

            do
            {
                LocationRootObject root = LocationProcessor.LoadLocation(query, nextPageToken, town, radius);
                foreach (var i in root.results)
                {
                    locations.Add(new Location()
                    {
                        LocationId = i.place_id, Lat = i.geometry.location.lat,
                        Lng        = i.geometry.location.lng, Name = i.name, visitCount = 0, type = query
                    });
                }
                nextPageToken = root.next_page_token;
            }while (nextPageToken != null);
            locations.ForEach(g => context.Locations.AddOrUpdate(g));
            context.SaveChanges();
        }
        public static LocationRootObject LoadLocation(string query)
        {
            string url = $"https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=50.01241376861261,20.988371372222904&type={ query }&radius=500&key=AIzaSyA5jOPVeNOqU6lLscGSE3t665ejKNjrGQI";

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var response = client.GetAsync(url).GetAwaiter().GetResult();
                if (response.IsSuccessStatusCode)
                {
                    var responseContent     = response.Content;
                    LocationRootObject root = responseContent.ReadAsAsync <LocationRootObject>().GetAwaiter().GetResult();
                    return(root);
                }
                else
                {
                    throw new Exception(response.ReasonPhrase);
                }
            }
        }
        public APIReturnModel CallTripAdvisorAPI()
        {
            APIReturnModel returnModel = new APIReturnModel();

            try
            {
                string TAkey = TripAdvisorSettings.TripAdvisorKey;
                using (var httpClient = new HttpClient())
                {
                    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    foreach (var locationID in TripAdvisorSettings.TripAdvisorLocationIDs.Split('|'))
                    {
                        foreach (var language in TripAdvisorSettings.TripAdvisorLanguages.Split('|'))
                        {
                            LocationModel model = new LocationModel();
                            model.LocationID = locationID;
                            model.Language   = language;

                            if (TripAdvisorSettings.TripAdvisorLocationURL != null)
                            {
                                string             url                = string.Format(TripAdvisorSettings.TripAdvisorLocationURL, locationID, TAkey, language);
                                var                response           = httpClient.GetAsync(url).Result;
                                LocationRootObject locationrootObject = JsonConvert.DeserializeObject <LocationRootObject>(response.Content.ReadAsStringAsync().Result);
                                model.LocationDetails = locationrootObject;
                            }

                            if (TripAdvisorSettings.TripAdvisorActivityURL != null)
                            {
                                string             url                  = string.Format(TripAdvisorSettings.TripAdvisorActivityURL, locationID, TAkey, language);
                                var                response             = httpClient.GetAsync(url).Result;
                                ActivityRootObject activitiesrootObject = JsonConvert.DeserializeObject <ActivityRootObject>(response.Content.ReadAsStringAsync().Result);
                                model.ActivitiesDetails = activitiesrootObject;
                            }

                            if (TripAdvisorSettings.TripAdvisorAttractionsURL != null)
                            {
                                string url      = string.Format(TripAdvisorSettings.TripAdvisorAttractionsURL, locationID, TAkey, language);
                                var    response = httpClient.GetAsync(url).Result;
                                AttractionRootObject attractionsrootObject = JsonConvert.DeserializeObject <AttractionRootObject>(response.Content.ReadAsStringAsync().Result);
                                model.AttractionDetails = attractionsrootObject;
                            }

                            if (TripAdvisorSettings.TripAdvisorHotelsURL != null)
                            {
                                string          url              = string.Format(TripAdvisorSettings.TripAdvisorHotelsURL, locationID, TAkey, language);
                                var             response         = httpClient.GetAsync(url).Result;
                                HotelRootObject hotelsrootObject = JsonConvert.DeserializeObject <HotelRootObject>(response.Content.ReadAsStringAsync().Result);
                                model.HotelDetails = hotelsrootObject;
                            }

                            if (TripAdvisorSettings.TripAdvisorRestaurantsURL != null)
                            {
                                string url      = string.Format(TripAdvisorSettings.TripAdvisorRestaurantsURL, locationID, TAkey, language);
                                var    response = httpClient.GetAsync(url).Result;
                                RestaurantRootObject restaurantrootObject = JsonConvert.DeserializeObject <RestaurantRootObject>(response.Content.ReadAsStringAsync().Result);
                                model.RestaurantDetails = restaurantrootObject;
                            }

                            if (TripAdvisorSettings.TripAdvisorReviewsURL != null)
                            {
                                string           url              = string.Format(TripAdvisorSettings.TripAdvisorReviewsURL, locationID, TAkey, language);
                                var              response         = httpClient.GetAsync(url).Result;
                                ReviewRootObject reviewrootObject = JsonConvert.DeserializeObject <ReviewRootObject>(response.Content.ReadAsStringAsync().Result);
                                model.ReviewDetails = reviewrootObject;
                            }

                            returnModel.locationModels.Add(model);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }

            return(returnModel);
        }