/// <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); } }
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); } }