/// <summary> /// Gets current conditions using helper method. /// </summary> public async Task ShowCurrentConditionsAsync() { if (City == null) { City = await SetCityAsync(); } var currentConditions = await GetWeatherHelper.GetCurrentConditions(City.Key, Language); Console.WriteLine($"\n Wybrałeś {City.LocalizedName}, {City.AdministrativeArea.LocalizedName}, {City.Country.LocalizedName}. Jest {currentConditions.LocalObservationDateTime:g} \n " + $"{currentConditions.WeatherText}, {currentConditions.Temperature.Metric.Value}°{currentConditions.Temperature.Metric.Unit}" + $"({currentConditions.Temperature.Imperial.Value}°{currentConditions.Temperature.Imperial.Unit})" + Environment.NewLine); }
/// <summary> /// Displays forecast for either next 12 hours or the next five days. /// </summary> public async Task ShowLatestForecastAsync() { if (City == null) { City = await SetCityAsync(); } Console.WriteLine($"Prognoza dla: {City.LocalizedName}. Wybierz preferowany rodzaj prognozy:" + Environment.NewLine + "1. Prognoza godzinowa (12 godzin)" + Environment.NewLine + "2. Prognoza dniowa (5 dni)" + Environment.NewLine); Console.Write("Wpisz numer i potwierdź klawiszem ENTER: "); int.TryParse(Console.ReadLine(), out int selectedNumber); if (selectedNumber == 1) { var forecast = await GetWeatherHelper.Get12hrsForecast(City.Key, Language); foreach (var f in forecast) { Console.WriteLine($"{City.LocalizedName}, {f.DateTime.Hour:D2}:{f.DateTime.Minute:D2}" + Environment.NewLine + $"{f.IconPhrase}, {f.Temperature.Value}°{f.Temperature.Unit}."); if (f.HasPrecipitation) { Console.WriteLine($"{f.PrecipitationType}, {f.PrecipitationIntensity}."); } Console.WriteLine(Environment.NewLine); } } else if (selectedNumber == 2) { var forecast = await GetWeatherHelper.Get5DaysForecast(City.Key, Language); Console.WriteLine($"{City.LocalizedName}, {forecast.Headline.EffectiveDate:ddd d MMM yyyy}" + Environment.NewLine + $"{forecast.Headline.Text}" + Environment.NewLine); foreach (var f in forecast.DailyForecasts) { Console.WriteLine($"{f.Date:dddd}:" + Environment.NewLine + $"W ciągu dnia {f.Day.IconPhrase}, a w nocy {f.Night.IconPhrase}. Temperatura od {f.Temperature.Minimum.Value}°C do {f.Temperature.Maximum.Value}°C." + Environment.NewLine); } } else { Console.WriteLine("Nie wybrano żadnej opcji - powrót do menu głównego" + Environment.NewLine); } Console.WriteLine("Naciśnij dowolny klawisz, by wrócić do menu."); Console.ReadKey(); System.Console.WriteLine(Environment.NewLine); }
public async Task <City> SetCityAsync() { Console.WriteLine("Podaj nazwę miejscowości: " + Environment.NewLine); string query = Console.ReadLine(); int resultCounter = 1; var cities = new List <City>(await GetWeatherHelper.GetCitiesAsync(query, Language)); Console.WriteLine("Wybierz jeden z poniższych wyników: "); foreach (var c in cities) { Console.WriteLine($"{resultCounter}. {c.LocalizedName}, {c.AdministrativeArea.LocalizedName}, {c.Country.LocalizedName}" + Environment.NewLine); resultCounter++; } Console.Write("Wpisz numer i potwierdź klawiszem ENTER: "); int.TryParse(Console.ReadLine(), out int selectedNumber); Console.WriteLine("Miasto zostało ustawione."); return(cities[selectedNumber - 1]); }