public async Task <IEnumerable <DailyWeatherBE> > GetWeatherForecasts(WeatherProviderType providerType, WeatherParamsData model)
        {
            IWeatherProvider provider = _providers.FirstOrDefault(x => x.ProviderType == providerType);

            if (provider == null)
            {
                throw new NotSupportedException(nameof(providerType));
            }

            return(await provider.GetWeatherForecasts(model));
        }
Beispiel #2
0
        public IWeatherProvider GetWeatherProvider(WeatherProviderType providerType)
        {
            _logger.LogTrace("Resolve provider for {Type}", providerType);

            switch (providerType)
            {
            case WeatherProviderType.OpenWeathermap:
                return(_serviceProvider.GetService <OpenWeathermapWeatherProvider>());

            case WeatherProviderType.Cached:
                return(_serviceProvider.GetService <CachedWeatherProvider>());

            default:
                throw new NotSupportedException($"Provider {providerType} not supported");
            }
        }
Beispiel #3
0
 public WeatherData()
 {
     Provider = WeatherProviderType.DarkSky;
 }
        public async Task <IEnumerable <DailyWeatherForecastDTO> > GetWeatherForecastsForPeriod(WeatherParamsData data, WeatherProviderType providerType)
        {
            var dailyWeather = await _weatherProvider.GetWeatherForecasts(providerType, data);

            var result = Mapper.Map <IEnumerable <DailyWeatherForecastDTO> >(dailyWeather);

            //optional save to db
            //_db.WeatherForecastRepository.AddRange(result);
            //await _db.SaveChangesAsync();

            return(result);
        }