private void loadData() { try { City city = (City)cities.SelectedValue; cityName.Content = city.name; countryName.Content = city.country; Forecast f = LoadForecast(city.id); currentTemp.Content = Math.Round(f.list[0].main.temp) + "°C"; conditionType.Content = f.list[0].weather[0].description; string iconID = f.list[0].weather[0].icon; var bitmap = new BitmapImage(); bitmap.BeginInit(); bitmap.UriSource = new Uri(System.IO.Path.GetFullPath(@"..\..\..\WeatherIcons\") + iconID + ".png"); bitmap.EndInit(); conditionImage.Source = bitmap; lastUpdateTime.Content = System.DateTime.Now.ToString(); int index = getIndex(f.list[0].dt_txt); bitmap = new BitmapImage(); string iconID1 = f.list[index].weather[0].icon; bitmap.BeginInit(); bitmap.UriSource = new Uri(System.IO.Path.GetFullPath(@"..\..\..\WeatherIcons\") + iconID1 + ".png"); bitmap.EndInit(); conditionImage1.Source = bitmap; bitmap = new BitmapImage(); string iconID2 = f.list[index + 8].weather[0].icon; bitmap.BeginInit(); bitmap.UriSource = new Uri(System.IO.Path.GetFullPath(@"..\..\..\WeatherIcons\") + iconID2 + ".png"); bitmap.EndInit(); conditionImage2.Source = bitmap; bitmap = new BitmapImage(); string iconID3 = f.list[index + 16].weather[0].icon; bitmap.BeginInit(); bitmap.UriSource = new Uri(System.IO.Path.GetFullPath(@"..\..\..\WeatherIcons\") + iconID3 + ".png"); bitmap.EndInit(); conditionImage3.Source = bitmap; bitmap = new BitmapImage(); string iconID4 = f.list[index + 24].weather[0].icon; bitmap.BeginInit(); bitmap.UriSource = new Uri(System.IO.Path.GetFullPath(@"..\..\..\WeatherIcons\") + iconID4 + ".png"); bitmap.EndInit(); conditionImage4.Source = bitmap; day1Label.Content = DateTime.Parse(f.list[index].dt_txt).DayOfWeek; day2Label.Content = DateTime.Parse(f.list[index + 8].dt_txt).DayOfWeek; day3Label.Content = DateTime.Parse(f.list[index + 16].dt_txt).DayOfWeek; day4Label.Content = DateTime.Parse(f.list[index + 24].dt_txt).DayOfWeek; day1ContditionLabel.Content = f.list[index].weather[0].description; day2ContditionLabel.Content = f.list[index + 8].weather[0].description; day3ContditionLabel.Content = f.list[index + 16].weather[0].description; day4ContditionLabel.Content = f.list[index + 24].weather[0].description; List <double> minmax = getMinMax(f, index - 4); minTempDay.Content = Math.Round(minmax[0]) + "°C"; maxTempDay1.Content = Math.Round(minmax[1]) + "°C"; minTempDay2.Content = Math.Round(minmax[2]) + "°C"; maxTempDay2.Content = Math.Round(minmax[3]) + "°C"; minTempDay3.Content = Math.Round(minmax[4]) + "°C"; maxTempDay3.Content = Math.Round(minmax[5]) + "°C"; minTempDay4.Content = Math.Round(minmax[6]) + "°C"; maxTempDay4.Content = Math.Round(minmax[7]) + "°C"; hour1Label.Content = f.list[1].dt_txt.Substring(11, 5); hour2Label.Content = f.list[2].dt_txt.Substring(11, 5); hour3Label.Content = f.list[3].dt_txt.Substring(11, 5); hour4Label.Content = f.list[4].dt_txt.Substring(11, 5); hour5Label.Content = f.list[5].dt_txt.Substring(11, 5); hour6Label.Content = f.list[6].dt_txt.Substring(11, 5); hour7Label.Content = f.list[7].dt_txt.Substring(11, 5); hour8Label.Content = f.list[8].dt_txt.Substring(11, 5); hour1Temp.Content = Math.Round(f.list[1].main.temp) + "°C"; hour2Temp.Content = Math.Round(f.list[2].main.temp) + "°C"; hour3Temp.Content = Math.Round(f.list[3].main.temp) + "°C"; hour4Temp.Content = Math.Round(f.list[4].main.temp) + "°C"; hour5Temp.Content = Math.Round(f.list[5].main.temp) + "°C"; hour6Temp.Content = Math.Round(f.list[6].main.temp) + "°C"; hour7Temp.Content = Math.Round(f.list[7].main.temp) + "°C"; hour8Temp.Content = Math.Round(f.list[8].main.temp) + "°C"; cityName.Visibility = Visibility.Visible; countryName.Visibility = Visibility.Visible; conditionLabel.Visibility = Visibility.Visible; currentTemp.Visibility = Visibility.Visible; conditionType.Visibility = Visibility.Visible; conditionImage.Visibility = Visibility.Visible; lastUpdateTime.Visibility = Visibility.Visible; lastUpdateLabel.Visibility = Visibility.Visible; conditionImage1.Visibility = Visibility.Visible; conditionImage2.Visibility = Visibility.Visible; conditionImage3.Visibility = Visibility.Visible; conditionImage4.Visibility = Visibility.Visible; day1Label.Visibility = Visibility.Visible; day2Label.Visibility = Visibility.Visible; day3Label.Visibility = Visibility.Visible; day4Label.Visibility = Visibility.Visible; day1ContditionLabel.Visibility = Visibility.Visible; day2ContditionLabel.Visibility = Visibility.Visible; day3ContditionLabel.Visibility = Visibility.Visible; day4ContditionLabel.Visibility = Visibility.Visible; minTempDay.Visibility = Visibility.Visible; maxTempDay1.Visibility = Visibility.Visible; minTempDay2.Visibility = Visibility.Visible; maxTempDay2.Visibility = Visibility.Visible; minTempDay3.Visibility = Visibility.Visible; maxTempDay3.Visibility = Visibility.Visible; minTempDay4.Visibility = Visibility.Visible; maxTempDay4.Visibility = Visibility.Visible; hour1Label.Visibility = Visibility.Visible; hour1Temp.Visibility = Visibility.Visible; hour2Label.Visibility = Visibility.Visible; hour2Temp.Visibility = Visibility.Visible; hour3Label.Visibility = Visibility.Visible; hour3Temp.Visibility = Visibility.Visible; hour4Label.Visibility = Visibility.Visible; hour4Temp.Visibility = Visibility.Visible; hour5Label.Visibility = Visibility.Visible; hour5Temp.Visibility = Visibility.Visible; hour6Label.Visibility = Visibility.Visible; hour6Temp.Visibility = Visibility.Visible; hour7Label.Visibility = Visibility.Visible; hour7Temp.Visibility = Visibility.Visible; hour8Label.Visibility = Visibility.Visible; hour8Temp.Visibility = Visibility.Visible; refreshButton.Visibility = Visibility.Visible; } catch { } }
private static List <double> getMinMax(Forecast f, int index) { List <double> temp = new List <double>(); double min = f.list[index].main.temp_min; double max = f.list[index].main.temp_max; for (int i = index + 1; i < index + 8; i++) { if (f.list[i].main.temp_max > max) { max = f.list[i].main.temp_max; } if (f.list[i].main.temp_min < min) { min = f.list[i].main.temp_min; } } temp.Add(min); temp.Add(max); min = f.list[index + 8].main.temp_min; max = f.list[index + 8].main.temp_max; for (int i = index + 9; i < index + 16; i++) { if (f.list[i].main.temp_max > max) { max = f.list[i].main.temp_max; } if (f.list[i].main.temp_min < min) { min = f.list[i].main.temp_min; } } temp.Add(min); temp.Add(max); min = f.list[index + 16].main.temp_min; max = f.list[index + 16].main.temp_max; for (int i = index + 17; i < index + 24; i++) { if (f.list[i].main.temp_max > max) { max = f.list[i].main.temp_max; } if (f.list[i].main.temp_min < min) { min = f.list[i].main.temp_min; } } temp.Add(min); temp.Add(max); min = f.list[index + 24].main.temp_min; max = f.list[index + 24].main.temp_max; for (int i = index + 25; i < index + 32; i++) { if (f.list[i].main.temp_max > max) { max = f.list[i].main.temp_max; } if (f.list[i].main.temp_min < min) { min = f.list[i].main.temp_min; } } temp.Add(min); temp.Add(max); return(temp); }