예제 #1
0
 public OpenWeatherTempReadingService(
     ILogger <TempReadingService> logger,
     IServiceScopeFactory scopeFactory,
     IOptions <TempServiceSettings> options,
     IOptions <OpenWeatherSettings> openWeatherMapOptions) : base(logger, scopeFactory, options)
 {
     this.openWeatherMapOptions = openWeatherMapOptions.Value;
 }
 public HistoricWeatherService(HttpClient httpClient,
                               IOptions <OpenWeatherSettings> options,
                               IMediatorHandler mediator,
                               IHistoricWeatherRepository historicWeatherRepository) : base(mediator)
 {
     _appSettings               = options.Value;
     httpClient.BaseAddress     = new Uri(_appSettings.WeatherBaseAddress);
     _httpClient                = httpClient;
     _historicWeatherRepository = historicWeatherRepository;
 }
예제 #3
0
        static void Main(string[] args)
        {
            IWeatherServiceSettings settings = new OpenWeatherSettings(key, url);
            IWeatherService         service  = new OpenWeatherService(settings);

            // View Component

            var cities = Enum.GetValues(typeof(City)).Cast <City>().ToArray();

            while (true)
            {
                Console.WriteLine("Select city:");

                for (int i = 0; i < cities.Length; i++)
                {
                    Console.WriteLine($"{i+1}. {cities[i]}");
                }

                Console.Write("Enter city number: ");

                if (!int.TryParse(Console.ReadLine(), out int cityNumber) || (cityNumber - 1) < 0 || (cityNumber - 1) >= cities.Length)
                {
                    Console.Clear();
                    Console.WriteLine("Wrong city number. Enter one more time.");
                    continue;
                }

                var city = cities[cityNumber - 1];

                var query = new QueryByCityId((int)city);

                //var query = new QueryByCityName("London");

                var weather = service.GetForecast(query);

                Console.Clear();

                WeatherForecastConsolePresenter.Show(weather);

                Console.WriteLine("\nOne more time? \"Y\" - yes, other input or empty string - no.");

                var input = Console.ReadLine();

                if (input.ToLower() == "y")
                {
                    Console.Clear();
                    continue;
                }
                else
                {
                    break;
                }
            }
        }
예제 #4
0
 public LocationService(ILogger <LocationService> logger, IOptions <OpenWeatherSettings> options)
 {
     client.BaseAddress = new Uri("http://nominatim.openstreetmap.org/");
     this.logger        = logger;
     settings           = options.Value;
 }
예제 #5
0
 public WeatherApi(OpenWeatherSettings openWeatherSettings)
 {
     _openWeatherSettings = openWeatherSettings;
 }
 public OpenWeatherClient(IOptions <OpenWeatherSettings> settings)
 {
     _settings = settings.Value;
     client    = new RestClient(_settings.Url);
 }
예제 #7
0
 public FetchManager(IWeatherApi weatherApi, IWeatherRepository repository, OpenWeatherSettings openWeatherSettings)
 {
     _weatherApi          = weatherApi;
     _repository          = repository;
     _openWeatherSettings = openWeatherSettings;
 }