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();
        }
Exemplo n.º 2
0
        // Обработчик старта приложения
        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;
                }
            }
        }