/// <summary>
        /// Obtains all the details of a specific place
        /// </summary>
        /// <param name="pPlaceId">Place id given by Google Maps API</param>
        /// <returns></returns>
        public dynamic PlaceDetails(string pPlaceId)
        {
            PlaceDetailsRequest request = new PlaceDetailsRequest();

            request.PlaceID = pPlaceId;

            var response = new PlaceDetailsService().GetResponse(request);

            dynamic place = new ExpandoObject();

            if (response.Status == ServiceResponseStatus.Ok)
            {
                PlaceDetailsResult result = response.Result;
                place.name      = result.Name;
                place.latitude  = result.Geometry.Location.Latitude;
                place.longitude = result.Geometry.Location.Longitude;
                place.address   = result.FormattedAddress;
                place.phone     = result.InternationalPhoneNumber;
                place.rating    = result.Rating;
                place.schedule  = GetOpeningHours(result);
                place.website   = result.Website;
                place.photo     = "";
                //place.photo = RequestPlacePhoto(result.Photos[0].PhotoReference);
                return(place);
            }
            else
            {
                return(null);
            }
        }
 /// <summary>
 /// Obtains the schedule of a place, which could be not returned by the API
 /// </summary>
 /// <param name="pResult"></param>
 /// <returns></returns>
 private string[] GetOpeningHours(PlaceDetailsResult pResult)
 {
     string[] schedule = { };
     try
     {
         schedule = pResult.OpeningHours.WeekdayText;
         return(schedule);
     }
     catch (Exception) { return(schedule); }
 }
예제 #3
0
        public async Task <GooglePlaceDetailsResult> ParsePlacesDetailsAsync(string json)
        {
            GooglePlaceDetailsResult result = new GooglePlaceDetailsResult();

            try
            {
                PlaceDetailsResult placeDetails = await Task.Run(() => JsonConvert.DeserializeObject <PlaceDetailsResult>(json));

                if (placeDetails.Status != "OK")
                {
                    result.IsSucess = false;
                }
                result.PlaceDetails = ConvertToPlaceDetails(placeDetails.PlaceDetailsGoogle);
                return(result);
            }
            catch
            {
                result.IsSucess = false;
                return(result);
            }
        }