//activates proxy and populates xaml controls with data from proxy with OpenWeatherMap private async void Search_Weather(object sender, RoutedEventArgs e) { CheckBox_Status_Checker(); //prompts user to select a unit of measurement if the user hasn't selected one yet if (Imperial.IsChecked == false && Metric.IsChecked == false) { MessageDialog noBoxChecked = new MessageDialog("Please choose a unit of measurement."); await noBoxChecked.ShowAsync(); return; } //prompts user to search a legitimate city if (searchBox.Text == "") { MessageDialog searchBoxEmpty = new MessageDialog("Please enter a city to search"); await searchBoxEmpty.ShowAsync(); return; } cityName = searchBox.Text; textBlockCity.Text = cityName; RootObject currentWeather = await Proxy.GetWeather(cityName, unit); FiveDayForecast Forecast = new FiveDayForecast(currentWeather); int[] days = { 0, 1, 2, 3, 4 }; Control_Populator(Forecast, days); }
//populates the temperature text for each day private void Temp_Populator(FiveDayForecast forecast, int[] days) { maxTemp0.Text = forecast.fiveDayForecastArr[days[0]].Temp; maxTemp1.Text = forecast.fiveDayForecastArr[days[1]].Temp; maxTemp2.Text = forecast.fiveDayForecastArr[days[2]].Temp; maxTemp3.Text = forecast.fiveDayForecastArr[days[3]].Temp; maxTemp4.Text = forecast.fiveDayForecastArr[days[4]].Temp; }
//populates the days of the week text private void Date_Populator(FiveDayForecast forecast, int[] days) { date0.Text = forecast.fiveDayForecastArr[days[0]].Date; date1.Text = forecast.fiveDayForecastArr[days[1]].Date; date2.Text = forecast.fiveDayForecastArr[days[2]].Date; date3.Text = forecast.fiveDayForecastArr[days[3]].Date; date4.Text = forecast.fiveDayForecastArr[days[4]].Date; }
//populates xaml images with corresponding weather icon private void Icon_Populator(FiveDayForecast forecast, int[] days) { icon0.Source = forecast.fiveDayForecastArr[days[0]].IconSource; icon1.Source = forecast.fiveDayForecastArr[days[1]].IconSource; icon2.Source = forecast.fiveDayForecastArr[days[2]].IconSource; icon3.Source = forecast.fiveDayForecastArr[days[3]].IconSource; icon4.Source = forecast.fiveDayForecastArr[days[4]].IconSource; }
//method that calls all individual UI control populators private void Control_Populator(FiveDayForecast forecast, int[] days) { Button_Displayer(); Control_Population_Handler Icon_Control = new Control_Population_Handler(Icon_Populator); Control_Population_Handler Date_Control = new Control_Population_Handler(Date_Populator); Control_Population_Handler Temp_Control = new Control_Population_Handler(Temp_Populator); Icon_Control += Date_Control + Temp_Control; Icon_Control(forecast, days); }