public void WeatherBotTest() { // Строки подключения к БД List<string> cnctstrlist = new List<string>(); //Создаем подключение к БД и чистим таблицы БД EntityConnectionStringBuilder ConnectionString = new EntityConnectionStringBuilder(); ConnectionString.ProviderConnectionString = @"data source=../../Test_Data/WeatherBotTest/YahooWeatherDB.sqlite"; ConnectionString.Provider = @"System.Data.SQLite"; ConnectionString.Metadata = @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl"; cnctstrlist.Add(ConnectionString.ToString()); LittleLogger logger = new LittleLogger("../../Test_Data/WeatherBotTest/log.txt"); WeatherWriter wWriter = new WeatherWriter(logger); wWriter.ClearData(ConnectionString.ToString()); ConnectionString.ProviderConnectionString = @"data source=../../Test_Data/WeatherBotTest/YandexWeatherDB.sqlite"; cnctstrlist.Add(ConnectionString.ToString()); wWriter.ClearData(ConnectionString.ToString()); // Формируем список городов для мониторинга // погодных данных List<City> CityList = new List<City>(); Dictionary<string, string> idlist = new Dictionary<string, string>(); // Челябинск idlist["Yahoo"] = "1997422"; idlist["Yandex"] = "28642"; City city1 = new City("Челябинск", idlist); CityList.Add(city1); // Москва idlist["Yahoo"] = "2122265"; idlist["Yandex"] = "27612"; City city2 = new City("Москва", idlist); CityList.Add(city2); // Самара idlist["Yahoo"] = "2077746"; idlist["Yandex"] = "28807"; City city3 = new City("Самара", idlist); CityList.Add(city3); // Интервал сбора погодных данных int timeout = 0; // Создаем погодного бота для одноразовго сбора погодных данных WeatherBot wBot = new WeatherBot(CityList, timeout, logger, cnctstrlist); wBot.Start(); }
// Обработчик старта приложения protected void Application_Start(object sender, EventArgs e) { // Формируем список городов для мониторинга // погодных данных Dictionary<string, string> IDList = new Dictionary<string, string>(); // Челябинск IDList["Yahoo"] = "1997422"; IDList["Yandex"] = "28642"; CityList.Add(new City("Челябинск", IDList)); // Москва IDList["Yahoo"] = "2122265"; IDList["Yandex"] = "27612"; CityList.Add(new City("Москва", IDList)); // Самара IDList["Yahoo"] = "2077746"; IDList["Yandex"] = "28807"; CityList.Add(new City("Самара", IDList)); // Устанавливаем интервал сбора погодных данных, // сутки = 86400000мс, // 0 - одноразовый сбор TimeOut = 300000; // Формируем строки подключения к // БД с погодными данными EntityConnectionStringBuilder ConnectionString = new EntityConnectionStringBuilder(); ConnectionString.Provider = @"System.Data.SQLite"; ConnectionString.Metadata = @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl"; ConnectionString.ProviderConnectionString = @"data source=|DataDirectory|YahooWeatherDB.sqlite"; CnctStrList.Add(ConnectionString.ToString()); ConnectionString.ProviderConnectionString = @"data source=|DataDirectory|YandexWeatherDB.sqlite"; CnctStrList.Add(ConnectionString.ToString()); // Создаем погодного бота для сбора погодных данных weatherBot = new WeatherBot(CityList, TimeOut, logger, CnctStrList); // Запускаем фоновый поток для выполнения задачи сбора // погодных данных с определенным интервалом. try { taskThread = new Thread(new ThreadStart(weatherBot.Start)); // Запись в лог о старте приложения logger.WriteLog(System.DateTime.Now.ToString() + " WeatherDataService is started"); // Запуск погодного бота taskThread.Start(); // Состояние сервиса ServiceState = true; // Запись в лог о старте бота logger.WriteLog(System.DateTime.Now.ToString() + " WeatheBot is started"); } catch (Exception exception) { // Запись в лог logger.WriteLog(System.DateTime.Now.ToString() + " " + exception.TargetSite.ToString() + " " + exception.Message); // Остановка задачи сбора погодных данных if (taskThread.IsAlive) { taskThread.Abort(); ServiceState = false; } } }