void SaveDailyCondition(IRestResponse<RootObject> weatherData, City city)
        {
            if (weatherData.Data == null || weatherData.Data.Data == null || weatherData.Data.Data.Weather == null)
                return;

            foreach (Weather weatherDataCondition in weatherData.Data.Data.Weather)
            {
                using (ITransaction tx = _session.BeginTransaction())
                {
                    var weatherCondition = new AlmanacDay
                                               {
                                                   City = city,
                                                   Date = Convert.ToDateTime(weatherDataCondition.Date),
                                                   AlmanacHourly = new AlmanacHourly[] {}
                                               };
                    _session.Save(weatherCondition);

                    IEnumerable<AlmanacHourly> hourlyConditions = weatherDataCondition.Hourly
                        .Select(weatherHourlyDataCondition =>
                                new AlmanacHourly
                                    {
                                        AlmanacDayId = weatherCondition.Id,
                                        Date = weatherCondition.Date,
                                        Hour = Convert.ToInt32(weatherHourlyDataCondition.Time),
                                        Precipitation = Convert.ToDouble(weatherHourlyDataCondition.precipMM),
                                        Temperature = Convert.ToDouble(weatherHourlyDataCondition.TempC)
                                    });

                    foreach (AlmanacHourly hourlyCondition in hourlyConditions)
                    {
                        _session.Save(hourlyCondition);
                    }
                    tx.Commit();
                }
            }
        }
        void SaveCurrentCondition(IRestResponse<RootObject> weatherData, City city)
        {
            if (weatherData.Data == null || weatherData.Data.Data == null ||
                weatherData.Data.Data.Current_Condition == null)
                return;

            foreach (CurrentCondition weatherDataCondition in weatherData.Data.Data.Current_Condition)
            {
                using (ITransaction tx = _session.BeginTransaction())
                {
                    IQueryable<AlmanacDay> query =
                        _session.Query<AlmanacDay>().Where(almanacday => almanacday.Date.Date == DateTime.Now.Date &&
                                                                         almanacday.City.Id == city.Id);
                    if (!query.Any())
                    {
                        var weatherCondition = new AlmanacDay
                                                   {
                                                       Date = DateTime.Now,
                                                       City = _session.Query<City>().First(x => x.Id == city.Id),
                                                       AlmanacHourly = new AlmanacHourly[] {}
                                                   };
                        _session.Save(weatherCondition);

                        query =
                            _session.Query<AlmanacDay>().Where(
                                almanacday =>
                                almanacday.Date.Date == DateTime.Now.Date && almanacday.City.Id == city.Id);
                    }

                    var hourlyCondition = new AlmanacHourly
                                              {
                                                  AlmanacDayId = query.First().Id,
                                                  Date = query.First().Date,
                                                  Hour = DateTime.Now.TimeOfDay.Hours*100,
                                                  Precipitation = Convert.ToDouble(weatherDataCondition.precipMM),
                                                  Temperature = Convert.ToDouble(weatherDataCondition.temp_C)
                                              };
                    _session.Save(hourlyCondition);
                    tx.Commit();
                }
            }
        }
        private void SaveDailyCondition(IRestResponse<RootObject> weatherData, City city)
        {
            if (weatherData.Data == null || weatherData.Data.Data == null || weatherData.Data.Data.Weather == null)
                return;

            foreach (var weatherDataCondition in weatherData.Data.Data.Weather)
            {
                using (var tx = _session.BeginTransaction())
                {
                    var weatherCondition = new AlmanacDay
                    {
                        City = _session.Query<City>().First(x => x.Id == city.Id),
                        Date = Convert.ToDateTime(weatherDataCondition.Date),
                        AlmanacHourly = new AlmanacHourly[] { }

                    };
                    _session.Save(weatherCondition);

                    foreach (var hourlyCondition in weatherDataCondition.Hourly.Select(weatherHourlyDataCondition => new AlmanacHourly
                        {
                            AlmanacDayId = weatherCondition.Id,
                            Date = weatherCondition.Date,
                            Hour = Convert.ToInt32(weatherHourlyDataCondition.Time),
                            Precipitation = Convert.ToDouble(weatherHourlyDataCondition.precipMM),
                            Temperature = Convert.ToDouble(weatherHourlyDataCondition.TempC)
                        }))
                    {
                        _session.Save(hourlyCondition);
                    }
                    tx.Commit();
                }
            }
        }