static void DisplayCurrentWeatherByZip(LocationZip zips) { DisplayHeader("Current Weather by Zip"); WeatherData currentWeatherDataByZip = GetCurrentWeatherDataByZip(zips); Console.WriteLine(String.Format("Temperature (Fahrenheit): {0:0.0}", ConvertToFahrenheit(currentWeatherDataByZip.Main.Temp))); Console.WriteLine(String.Format("Wind: {0:0.0}", currentWeatherDataByZip.Wind.Speed)); Console.WriteLine(String.Format("Visibility: {0:0.0}", currentWeatherDataByZip.Visibility)); Console.WriteLine(String.Format("Pressure: {0}", currentWeatherDataByZip.Main.Pressure)); Console.WriteLine(String.Format("Humidity: {0:0.0}", currentWeatherDataByZip.Main.Humidity)); DisplayContinuePrompt(); }
static void DisplayMenu() { bool quit = false; LocationCoordinates coordinates = new LocationCoordinates(0, 0); LocationZip zips = new LocationZip(0); while (!quit) { DisplayHeader("Main Menu"); Console.WriteLine("Enter the number of your menu choice."); Console.WriteLine(); Console.WriteLine("1) Set the Location by Coordinates"); Console.WriteLine("2) Set the Location by Zip Code"); Console.WriteLine("3) Display the Current Weather by Coordinates"); Console.WriteLine("4) Display the Current Weather by Zip"); Console.WriteLine("5) Exit"); Console.WriteLine(); Console.Write("Enter Choice:"); string userMenuChoice = Console.ReadLine(); switch (userMenuChoice) { case "1": coordinates = DisplayGetLocationByCoordinates(); break; case "2": zips = DisplayGetLocationByZip(); break; case "3": DisplayCurrentWeather(coordinates); break; case "4": DisplayCurrentWeatherByZip(zips); break; case "5": quit = true; break; default: Console.WriteLine("You must enter a number from the menu."); break; } } }
static LocationZip DisplayGetLocationByZip() { DisplayHeader("Set Location by Zip Code"); LocationZip zips = new LocationZip(); Console.Write("Enter Zip Code: "); zips.Zip = int.Parse(Console.ReadLine()); Console.WriteLine(); Console.WriteLine($"Location Zip Code: ({zips.Zip})"); Console.WriteLine(); DisplayContinuePrompt(); return(zips); }
static WeatherData GetCurrentWeatherDataByZip(LocationZip zips) { string url; StringBuilder sb = new StringBuilder(); sb.Clear(); sb.Append("http://api.openweathermap.org/data/2.5/weather?"); sb.Append("&zip=" + zips.Zip.ToString()); sb.Append("&appid=5e8d3f877557f170f55863ff55ad54f5"); url = sb.ToString(); WeatherData currentWeather = new WeatherData(); currentWeather = HttpGetCurrentWeatherByLocation(url); return(currentWeather); }