private async Task InitPage() { string placeId = Arguments.GetString(Common.Constants.BundleKeys.Placeid); try { _placeDetails = await _googleApiService.GetPlaceById(placeId); DisplayMetrics displayMetrics = new DisplayMetrics(); Activity.WindowManager.DefaultDisplay.GetMetrics(displayMetrics); int width = displayMetrics.WidthPixels; var bitmap = await _googleApiService.GetPhoto(_placeDetails.result.photos.FirstOrDefault().photo_reference, width); _photoImageView.SetImageBitmap(bitmap); var span = GetOpenHours(_placeDetails); _openHoursTextView.Text = string.Format(GetString(Resource.String.OpenUntillFormat), span.ToString(GetString(Resource.String.TimeFormat))); _phoneNumber = _placeDetails.result.international_phone_number; _placeLocation = _placeDetails.result.geometry.location; _adressTextView.Text = _placeDetails.result.vicinity; _distanceTextView.Text = string.Format(GetString(Resource.String.DistanceFormat), LocationService.GetDistance(_currentLocation, _placeDetails.result.geometry.location) / MetresInKm); } catch { if (Context != null) { Toast.MakeText(Context, Resource.String.Error_PlaceDetails, ToastLength.Long).Show(); } } }
private DateTime GetOpenHours(GooglePlaceDetailsModel place) { var closeString = place.result.opening_hours.periods[(int)DateTime.Now.DayOfWeek - 1]?.close?.time; if (closeString != null) { var hour = Int32.Parse(closeString.Substring(0, 2)); var minute = Int32.Parse(closeString.Substring(2, 2)); var date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hour, minute, 0); var result = date - DateTime.Now; if (hour < DateTime.Now.Hour) { result = result.Add(new TimeSpan(HoursInDay, 0, 0)); } return(date); } return(new DateTime()); }