// заполняем базу городами private void button7_Click(object sender, EventArgs e) { // получаем города и региона Yandex.YandexMethods worker = new Yandex.YandexMethods(); RegionCitiesLists list = worker.GetRegionCitiesList(); SQLiteDatabaseWorker SQLworker = new SQLiteDatabaseWorker(); SQLworker.SetConnect(Program.DBName); SQLworker.FillCitiesAndRegionsTables(list); SQLworker.CloseConnect(); }
public DataAccessLevel.Forecast GetCurWether(string path) { DataAccessLevel.SQLiteDatabaseWorker worker = new DataAccessLevel.SQLiteDatabaseWorker(); DataAccessLevel.Forecast forecast = new DataAccessLevel.Forecast(); // получаем текущий город из настроек worker.SetConnect(path); DataAccessLevel.SettingsDataContext sdc = worker.GetSettings(); // настройки worker.CloseConnect(); // sdc.cityID - id выбранного города // sdc.ID - id настройки try { HttpWebRequest reqFP = (HttpWebRequest)HttpWebRequest.Create("http://www.google.com"); HttpWebResponse rspFP = (HttpWebResponse)reqFP.GetResponse(); if (HttpStatusCode.OK == rspFP.StatusCode) { // HTTP = 200 - Интернет безусловно есть! rspFP.Close(); DataAccessLevel.Forecast yandexForecast = new DataAccessLevel.Forecast(); switch (sdc.sourceID) { case 1: // owm // получаем город по ид яндекса GetCityByYaId worker.SetConnect(path); DataAccessLevel.CitiesDataContext city = worker.GetCityByYaId(sdc.cityID.ToString()); worker.CloseConnect(); // получаем прогноз owm по названию или owmid OpenWeatherMap.APIWorker owmworker = new APIWorker(); DataAccessLevel.Forecast owmForecast = owmworker.GetWeather(city.name, city.owmID); // сохраняем в базу worker.SetConnect(path); worker.SaveForecast(owmForecast); worker.CloseConnect(); break; case 2: // яндекс // получаем прогноз с яндекса (по ID города яндекса) Yandex.YandexMethods yaworker = new Yandex.YandexMethods(); yaworker.GetYandexForecast(sdc.cityID.ToString(), yandexForecast); // сохраняем в базу worker.SetConnect(path); worker.SaveForecast(yandexForecast); worker.CloseConnect(); return(yandexForecast); default: break; } // получаем текущее время - нужен id текущий города на яндексе Date_Time.GetTime getter = new Date_Time.GetTime(); DateTime CurDate = getter.Yandex_Time(sdc.cityID); // получаем прогноз из базы по установленному в настройках серверу worker.SetConnect(path); forecast = worker.GetForecast(CurDate); worker.CloseConnect(); int a = 0; return(forecast); } else { // сервер вернул отрицательный ответ, возможно что инета нет rspFP.Close(); MessageBox.Show("Подключение к интернету ограничено, данные могут быть неточными"); // получаем текущее время - нужен id текущий города на яндексе Date_Time.GetTime getter = new Date_Time.GetTime(); DateTime CurDate = getter.Yandex_Time(sdc.cityID); // получаем прогноз из базы по установленному в настройках серверу worker.SetConnect(path); forecast = worker.GetForecast(CurDate); worker.CloseConnect(); return(forecast); } } catch (WebException) { // Ошибка, значит интернета у нас нет. Плачем :'( MessageBox.Show("Невозможно подключиться к интернету, данные могут быть неточными"); // получаем прогноз из базы по установленному в настройках серверу worker.SetConnect(path); forecast = worker.GetForecast(DateTime.Now); worker.CloseConnect(); return(forecast); } }