public override async Task Initialize() { FetchingData = true; BasicGeoposition position = new BasicGeoposition(); try { await geolocationService.RequestGeolocationPermission(); position = await geolocationService.GetCurrentCoordinates(); } catch (Exception e) { LocationErrorThrown = true; FetchingData = false; } if (LocationErrorThrown) { return; } LocationCityName = await getLocationCityName(position.Latitude, position.Longitude); WeatherForecast weatherData = await weatherApi.LoadWeather(position.Latitude, position.Longitude); if (weatherData != null) { ForecastListEntry[] forecastsList = weatherData.list.Select(item => { ForecastListEntry entry = new ForecastListEntry(); entry.Description = capitalizeFirstLetter(item.weather[0].description); entry.Temperature = (short)Math.Round(convertKelvinToCelsius(item.main.temp)); entry.Time = Convert.ToDateTime(item.dt_txt); entry.WeatherType = getWeatherTypeFor(item.weather[0].main); return(entry); }).ToArray(); Weather = new WeatherModel(forecastsList); FetchingData = false; } }