public async Task LoadWeatherForModels(ObservableCollection <CityTableCellViewModel> citiesModels) { using (var httpClient = new HttpClient()) { foreach (var cityModel in citiesModels) { try { string url = UrlResolver.ResolveWeatherApiUrl(cityModel.WeatherId); string json = await httpClient.GetStringAsync(url); var data = JObject.Parse(json); int temp = data["main"]["temp"].Value <int>(); var selectedCity = Cities.First((item) => item.WeatherId == cityModel.WeatherId); selectedCity.CurrentWeather = Convert.ToString(temp) + " °C"; selectedCity.WindDegree = data["wind"]["deg"].Value <int>(); cityModel.Weather = selectedCity.CurrentWeather; var wind = WindDirection.GetWindDirection(selectedCity.WindDegree); cityModel.WindDirectionImageSource = WindDirection.GetWindImageDirection(wind); cityModel.UpdateWeather(); } catch { if (cityModel.WindDirectionImageSource == null) { cityModel.WindDirectionImageSource = WindDirection.GetNotLoadedImageDirection(); cityModel.UpdateWeather(); } } } } WeatherUpdated(this, new EventArgs()); }