Ejemplo n.º 1
0
        private async Task UpdateWeather(string cityLink)
        {
            WeatherRetriever       weatherRetriever = new WeatherRetriever();
            ObservationsRootObject observationsRoot = await weatherRetriever.GetObservations(cityLink);

            ViewModel.Description  = observationsRoot.response.ob.weatherShort;
            ViewModel.LocationName = observationsRoot.response.place.name + ", " + observationsRoot.response.place.state + " " + observationsRoot.response.place.country;
            ViewModel.Temperature  = "" + observationsRoot.response.ob.tempF + "F";
            ViewModel.ImageUrl     = GetIconURLFromName(observationsRoot.response.ob.icon);

            //So that if you choose a different city it removes the forecast for previous city
            ViewModel.Forecast.Clear();

            ForecastRootObject forecastRoot = await weatherRetriever.GetForecast(cityLink);

            foreach (Models.Forecast.Response response in forecastRoot.response)
            {
                foreach (Period period in response.periods)
                {
                    ForecastDayViewModel dayViewModel = new ForecastDayViewModel {
                        Date             = period.dateTimeISO.Date.Month + "/" + period.dateTimeISO.Date.Day,
                        TemperatureRange = "" + period.minTempF + " - " + period.maxTempF,
                        ImageUrl         = GetIconURLFromName(period.icon),
                        Description      = period.weather
                    };
                    ViewModel.Forecast.Add(dayViewModel);
                }
            }
        }
Ejemplo n.º 2
0
        private async Task UpdateWeather(string cityLink)
        {
            WeatherRetriever       weatherRetriever = new WeatherRetriever();
            ObservationsRootObject observationsRoot = await weatherRetriever.GetObservations(cityLink);

            ForecastRootObject forecastRoot = await weatherRetriever.GetForecast(cityLink);

            ViewModel.Description  = observationsRoot.response.ob.weatherShort;
            ViewModel.LocationName =
                observationsRoot.response.place.name + ", " +
                observationsRoot.response.place.state + " " +
                observationsRoot.response.place.country;
            ViewModel.Temperature = "" + observationsRoot.response.ob.tempF;
            ViewModel.ImageUrl    = GetIconURLFromName(observationsRoot.response.ob.icon);

            foreach (Models.Forecast.Response resp in forecastRoot.response)
            {
                int count = 0;
                foreach (Period period in resp.periods)
                {
                    ViewModel.Forecast[count].Date      = period.validTime.ToString().Substring(0, 3);
                    ViewModel.Forecast[count].TempRange = period.minTempF.ToString() + " - " + period.maxTempF.ToString();
                    ViewModel.Forecast[count].Weather   = period.weather;
                    ViewModel.Forecast[count].ImageUrl  = GetIconURLFromName(period.icon);
                    count++;
                }
            }
        }
Ejemplo n.º 3
0
        public async Task <ObservationsRootObject> GetObservations(string cityLink)
        {
            HttpClient httpClient     = new HttpClient();
            string     apiUrl         = $"https://api.aerisapi.com/observations/{cityLink}?client_id={apiKey}&client_secret={secret}";
            string     responseString = await httpClient.GetStringAsync(apiUrl);

            ObservationsRootObject observations = JsonConvert.DeserializeObject <ObservationsRootObject>(responseString);

            return(observations);
        }
Ejemplo n.º 4
0
        private async Task UpdateWeather(string cityLink)
        {
            WeatherRetriever       weatherRetriever = new WeatherRetriever();
            ObservationsRootObject observationsRoot = await weatherRetriever.GetObservations(cityLink);

            ViewModel.Description  = observationsRoot.response.ob.weatherShort;
            ViewModel.LocationName =
                observationsRoot.response.place.name + ", " +
                observationsRoot.response.place.state + " " +
                observationsRoot.response.place.country;
            ViewModel.Temperature = "" + observationsRoot.response.ob.tempF;
            ViewModel.ImageUrl    = GetIconURLFromName(observationsRoot.response.ob.icon);
        }
Ejemplo n.º 5
0
        private async Task UpdateWeather(string cityLink, int limit)
        {
            WeatherRetriever       weatherRetriever = new WeatherRetriever();
            ObservationsRootObject observationsRoot = await weatherRetriever.GetObservations(cityLink);

            ViewModel.Description  = observationsRoot.response.ob.weatherShort;
            ViewModel.LocationName = observationsRoot.response.place.name + ", " + observationsRoot.response.place.state + " " + observationsRoot.response.place.country;
            ViewModel.Temperature  = "" + observationsRoot.response.ob.tempF;
            ViewModel.ImageUrl     = GetIconURLFromName(observationsRoot.response.ob.icon);

            ViewModel.Forecast.Clear();
            ForecastRootObject forecastRootObject = await weatherRetriever.GetForecasts(cityLink, limit);

            for (int i = 0; i < limit; i++)
            {
                ViewModel.Forecast.Add(new ForecastDayViewModel {
                    Date = (forecastRootObject.response[0].periods[i].dateTimeISO.Month + "/" + forecastRootObject.response[0].periods[i].dateTimeISO.Day), Temp = (forecastRootObject.response[0].periods[i].minTempF + "-" + forecastRootObject.response[0].periods[i].maxTempF), Description = forecastRootObject.response[0].periods[i].weather, ImageUrl = GetIconURLFromName(forecastRootObject.response[0].periods[i].icon)
                });
            }
        }