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);
        }
        private static object PrecipSpanConverter(DailyWeatherBE value)
        {
            if (value.HourlyDetails.Any(x => x.PrecipType != PrecipType.NoPrecipitation))
            {
                return(new PrecipSpanDTO
                {
                    PrecipType = value.PrecipType,
                    StartPrecip = value.HourlyDetails.Where(x => x.PrecipType != PrecipType.NoPrecipitation)
                                  .Min(x => x.DateTime),
                    EndPrecip = value.HourlyDetails.Where(x => x.PrecipType != PrecipType.NoPrecipitation)
                                .Max(x => x.DateTime)
                });
            }

            return(null);
        }