Esempio n. 1
0
 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);
        }