/// <summary> /// Получение данных о погоде,и запись в бд /// </summary> /// <param name="state"></param> public void GetWeathers(object state) { try { using (var scope = _scopeFactory.CreateScope()) using (var db = scope.ServiceProvider.GetRequiredService <WeatherContext>()) { _logger.LogInformation("Отправка запроса на полученние данных..."); HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); string weather_json; using (StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream())) weather_json = streamReader.ReadToEnd(); Root weather_response = JsonConvert.DeserializeObject <Root>(weather_json); DateTime datatime = DateTimeExtension.LongToDateTime(weather_response.dt) .AddHours(4); if (db.WeatherMain.Where(p => p.DateTime == datatime).FirstOrDefault() == null) { WeatherMain weather = new WeatherMain { Name = weather_response.name, DateTime = datatime, Main = weather_response.weather.FirstOrDefault().main, Description = weather_response.weather.FirstOrDefault().description, Temp = weather_response.main.temp, TempMax = weather_response.main.temp_max, TempMin = weather_response.main.temp_min, FeelsLike = weather_response.main.feels_like, Pressure = weather_response.main.pressure, Humidity = weather_response.main.humidity, WindSpeed = weather_response.wind.speed, WindDeg = weather_response.wind.deg, Clouds = weather_response.clouds.all, OriginalJson = weather_json }; if (weather_response.rain != null) { weather.Rain1h = weather_response.rain.H1; weather.Rain3h = weather_response.rain.H3; } if (weather_response.snow != null) { weather.Snow1h = weather_response.snow.H1; weather.Snow3h = weather_response.snow.H3; } db.WeatherMain.Add(weather); db.SaveChanges(); _logger.LogInformation("Данные успешно сохранены"); } } } catch (Exception ex) { _logger.LogInformation($"Ошибка получение данных: {ex.Message}"); Console.WriteLine($"Ошибка получение данных: {ex.Message}"); } }