public IEnumerable <WeatherForecast> ConvertToWeatherForecasts(OpenWeatherResponseModel responseModel) { return (this.mapper.Map <List <WeatherForecast> >(responseModel.list) .GroupBy(r => r.Date.DayOfWeek).Select(g => g.First())); }
private static List <DailyWeatherBE> OpenWeatherResponseModelToListWeatherDTO(OpenWeatherResponseModel responseModel, ResolutionContext context) { var result = new List <DailyWeatherBE>(); var hourlyDetailsByDay = responseModel.HourlyDetails.GroupBy(x => x.DateTime.Date); foreach (var detailByDay in hourlyDetailsByDay) { var hourlyDetails = detailByDay.ToList(); var dailyWeatherDTO = new DailyWeatherBE { ProviderType = WeatherProviderType.OpenWeatherMap, DateTime = detailByDay.Key, HourlyDetails = context.Mapper.Map <List <HourlyDetailWeatherBE> >(hourlyDetails), TemperatureMin = hourlyDetails.Min(x => x.MainInfoResponse.TempMin), TemperatureMax = hourlyDetails.Min(x => x.MainInfoResponse.TempMax), Pressure = hourlyDetails.Average(x => x.MainInfoResponse.Pressure) }; dailyWeatherDTO.PrecipType = dailyWeatherDTO.HourlyDetails.Any(x => x.PrecipType == PrecipType.Rain) ? PrecipType.Rain : PrecipType.NoPrecipitation; result.Add(dailyWeatherDTO); } return(result); }