Требуется разработать консольное приложение, которое позволяет в удобном виде получить погоду для определенного города.
Требования к функционалу приложения:
- возможность получить текущую погоду определенного города;
- возможность получить прогноз погоды на 7 дней для определенного города;
- выбор города из заранее заготовленного списка (
enum
) (5 городов); - возможность получить погоду для города, который отсутствует в
enum
(ввод с клавиатуры); - информацию о погоде требуется выводит в максимально красивом виде.
Реализация:
Для реализации требуется использовать Rest API сервиса OpenWheaterMap.
Для общения с сервисом требуется зарегистрироватся и получить API ключ.
Сервис возвращает информацию в JSON виде.
Требуется создать классы или структуры для данной схемы данных и десериализовать с помощью библиотеку Newtonsoft.Json.NET.
Для получения результата от сервиса требуется использовать асинхронный способ общения через делегаты.
Например:
public static void DownloadWeather(string cityName, Action<WeatherData> received)
{
// Получаем данные с сервиса...
// Когда данные будут получены, вызываем делегат received?.Invoke(data)
// ...
}
public static void DownloadForecast(string cityName, Action<WeatherData> received)
{
// Получаем данные с сервиса...
// Когда данные будут получены, вызываем делегат received?.Invoke(data)
// ...
}
Требования для выполнения задания:
- обработать исключения
(try..catch)
; - обработать коды состояний сервиса;
- следовать соглашению о написании C# кода.