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

            foreach (var weatherDataCondition in weatherData.Data.Data.Current_Condition)
            {
                using (var tx = _session.BeginTransaction())
                {
                     var query = from almanacday in _session.Query<AlmanacDay>()
                            where almanacday.Date.Date == DateTime.Now.Date.Date && almanacday.City.Id == city.Id
                            select almanacday;
                    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 = from almanacday in _session.Query<AlmanacDay>()
                                where almanacday.Date.Date == DateTime.Now.Date.Date && almanacday.City.Id == city.Id
                                select almanacday;
                    }

                    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();
                }
            }
        }
        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();
                }
            }
        }
        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();
                }
            }
        }