예제 #1
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++;
                }
            }
        }
예제 #2
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);
                }
            }
        }
예제 #3
0
        private async Task UpdateForecast(string cityLink)
        {
            WeatherRetriever weatherRetriever = new WeatherRetriever();

            ForecastRootObject forecastRoot = await weatherRetriever.GetForecast(cityLink);

            ViewModel.Forecast.Clear();

            foreach (Models.Forecast.Response resp in forecastRoot.response)
            {
                List <Period> periods = resp.periods;

                foreach (Period input in periods)
                {
                    ForecastDayViewModel ViewModel2 = new ForecastDayViewModel();
                    ViewModel2.TempRange = input.maxTempF + "-" + input.minTempF;
                    ViewModel2.Date      = input.dateTimeISO.Date.Month + "/" + input.dateTimeISO.Day;
                    ViewModel2.DescriDay = input.weather;
                    ViewModel2.Image     = GetIconURLFromName(input.icon);

                    ViewModel.Forecast.Add(ViewModel2);
                }
            }
        }