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)); }
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"); } }
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); }