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