public async Task <IEnumerable <DailyWeatherBE> > GetWeatherForecasts(WeatherParamsData paramsData) { var requestModel = Mapper.Map <DarkSkyRequestModel>(paramsData); var response = await _client.GetDarkSkyWeatherResponseAsync(requestModel); return(!response.HasError ? Mapper.Map <List <DailyWeatherBE> >(response.Response) : new List <DailyWeatherBE>()); }
private static object DarkSkyUnitsTypeConverter(WeatherParamsData value) { switch (value.UnitsType) { case UnitsType.Metric: return("si"); default: return("us"); } }
private static object OpenWeatherMapUnitsTypeConverter(WeatherParamsData value) { switch (value.UnitsType) { case UnitsType.Metric: return("metric"); default: return("imperial"); } }
private static object DarkSkyLangTypeConverter(WeatherParamsData value) { switch (value.LangType) { case LangType.Russian: return("ru"); case LangType.Ukrainian: return("uk"); default: return("en"); } }
public async Task <IEnumerable <DailyWeatherForecastDTO> > GetAverageWeatherForecastForPeriodByAllProviders(WeatherParamsData data) { var sources = new List <IEnumerable <DailyWeatherForecastDTO> >(); foreach (WeatherProviderType type in Enum.GetValues(typeof(WeatherProviderType))) { var dailyWeather = await GetWeatherForecastsForPeriod(data, type); if (dailyWeather.Any()) { sources.Add(dailyWeather); } } return(!sources.Any() ? new List <DailyWeatherForecastDTO>() : AverageForecast.GetAverageForecast(sources.ToArray())); }
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); }
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 async Task <Dictionary <WeatherProviderType, IEnumerable <DailyWeatherBE> > > GetWeatherForecastsByAllProviders(WeatherParamsData model) { var result = new Dictionary <WeatherProviderType, IEnumerable <DailyWeatherBE> >(); foreach (var provider in _providers) { var forecasts = await provider.GetWeatherForecasts(model); if (forecasts.Any()) { result.Add(provider.ProviderType, forecasts); } } return(result); }