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