private bool ModuleIsActive(BGModule _Module) { switch (_Module) { case BGModule.eTicker: if (BWTick != null) return true; break; case BGModule.eGetDB: if (BWDBGet != null) return true; break; case BGModule.eSendSMS: if (BWSendSMS != null) return true; break; case BGModule.eSendEMail: if (BWSendEMAIL != null) return true; break; case BGModule.eSendCab: if (BWSendCAB != null) return true; break; case BGModule.eSendRPost: if (BWSendRPOST != null) return true; break; case BGModule.eGetStatus: if (BWUpdate != null) return true; break; case BGModule.eSetDb: if (BWDBSet != null) return true; break; } return false; }
private bool StopModule(BGModule _Module, bool _Force = false) { bool retval = false; if (PreStopModule(_Module) || _Force) { try { switch (_Module) { case BGModule.eTicker: if (BWTick != null) BWTick.CancelAsync(); TLogger.Add("Модуль Тикер остановлен!", TLogger.MSGType.eEmail); break; case BGModule.eGetDB: if (BWDBGet != null) BWDBGet.CancelAsync(); TLogger.Add("Модуль Получения данных из БД остановлен!", TLogger.MSGType.eEmail); break; case BGModule.eSendSMS: if (BWSendSMS != null) BWSendSMS.CancelAsync(); TLogger.Add("Модуль Отправки СМС остановлен!", TLogger.MSGType.eEmail); break; case BGModule.eSendEMail: if (BWSendEMAIL != null) BWSendEMAIL.CancelAsync(); TLogger.Add("Модуль Отправки EMail остановлен!", TLogger.MSGType.eEmail); break; case BGModule.eSendCab: if (BWSendCAB != null) BWSendCAB.CancelAsync(); TLogger.Add("Модуль Отправки ЛК остановлен!", TLogger.MSGType.eEmail); break; case BGModule.eSendRPost: if (BWSendRPOST != null) BWSendRPOST.CancelAsync(); TLogger.Add("Модуль Отправки Почты России остановлен!", TLogger.MSGType.eEmail); break; case BGModule.eGetStatus: if (BWUpdate != null) BWUpdate.CancelAsync(); TLogger.Add("Модуль Получения статуса доставки остановлен!", TLogger.MSGType.eEmail); break; case BGModule.eSetDb: if (BWDBSet != null) BWDBSet.CancelAsync(); TLogger.Add("Модуль Обновления статусов БД остановлен!", TLogger.MSGType.eEmail); break; } retval = true; } catch { retval = false; } } return retval; }
private bool PreStopModule(BGModule _Module) { /// Проверяем, что модуль работает if (!ModuleIsActive(_Module)) return false; /// Обновление БД останавливаем только после остальных модулей if (_Module == BGModule.eSetDb) { if ((BWTick != null) || (BWDBGet != null) || (BWSendSMS != null) || (BWSendEMAIL != null) || (BWSendCAB != null) || (BWSendRPOST != null) || (BWUpdate != null)) return false; } return true; }
private bool RunModule(BGModule _Module) { bool retval = true; if (PreRunModule(_Module)) { try { switch (_Module) { case BGModule.eTicker: // Запускаем тикер BWTick = new BackgroundWorker(); BWTick.WorkerSupportsCancellation = true; BWTick.DoWork += BWTick_DoWork; BWTick.RunWorkerAsync(); BWTick.RunWorkerCompleted += (obj, arg) => { BWTick = null; }; TLogger.Add("Модуль Тикер запущен!", TLogger.MSGType.eEmail); break; case BGModule.eGetDB: // Запускаем получение из БД try { DBQuery.OnGetBDStart(); if (OnDBChange != null) OnDBChange(); BWDBGet = new BackgroundWorker(); BWDBGet.WorkerSupportsCancellation = true; BWDBGet.DoWork += BWDBGet_DoWork; BWDBGet.RunWorkerAsync(); BWDBGet.RunWorkerCompleted += (obj, arg) => { BWDBGet = null; }; TLogger.Add("Модуль Получения данных из БД запущен!", TLogger.MSGType.eEmail); } catch (Exception _ex) { TLogger.Add("Невозможно запустить Модуль Получения данных из БД! EXCEPTION: " + _ex.Message, TLogger.MSGType.eEmail); } break; case BGModule.eSendSMS: // Запускаем отправку провайдеру SMS BWSendSMS = new BackgroundWorker(); BWSendSMS.WorkerSupportsCancellation = true; BWSendSMS.DoWork += BWSendSMS_DoWork; BWSendSMS.RunWorkerAsync(); BWSendSMS.RunWorkerCompleted += (obj, arg) => { BWSendSMS = null; }; TLogger.Add("Модуль Отправки СМС запущен!", TLogger.MSGType.eEmail); break; case BGModule.eSendEMail: // Запускаем отправку провайдеру EMAIL BWSendEMAIL = new BackgroundWorker(); BWSendEMAIL.WorkerSupportsCancellation = true; BWSendEMAIL.DoWork += BWSendEMAIL_DoWork; BWSendEMAIL.RunWorkerAsync(); BWSendEMAIL.RunWorkerCompleted += (obj, arg) => { BWSendEMAIL = null; }; TLogger.Add("Модуль Отправки EMail запущен!", TLogger.MSGType.eEmail); break; case BGModule.eSendCab: // Запускаем отправку провайдеру CAB BWSendCAB = new BackgroundWorker(); BWSendCAB.WorkerSupportsCancellation = true; BWSendCAB.DoWork += BWSendCAB_DoWork; BWSendCAB.RunWorkerAsync(); BWSendCAB.RunWorkerCompleted += (obj, arg) => { BWSendCAB = null; }; TLogger.Add("Модуль Отправки ЛК запущен!", TLogger.MSGType.eEmail); break; case BGModule.eSendRPost: // Запускаем отправку провайдеру RPOST BWSendRPOST = new BackgroundWorker(); BWSendRPOST.WorkerSupportsCancellation = true; BWSendRPOST.DoWork += BWSendRPOST_DoWork; BWSendRPOST.RunWorkerAsync(); BWSendRPOST.RunWorkerCompleted += (obj, arg) => { BWSendRPOST = null; }; TLogger.Add("Модуль Отправки Почты России запущен!", TLogger.MSGType.eEmail); break; case BGModule.eGetStatus: // Запускаем обновление статусов от провайдера BWUpdate = new BackgroundWorker(); BWUpdate.WorkerSupportsCancellation = true; BWUpdate.DoWork += BWUpdate_DoWork; BWUpdate.RunWorkerAsync(); BWUpdate.RunWorkerCompleted += (obj, arg) => { BWUpdate = null; }; TLogger.Add("Модуль Получения статуса доставки запущен!", TLogger.MSGType.eEmail); break; case BGModule.eSetDb: // Запускаем обновление в БД BWDBSet = new BackgroundWorker(); BWDBSet.WorkerSupportsCancellation = true; BWDBSet.DoWork += BWDBSet_DoWork; BWDBSet.RunWorkerAsync(); BWDBSet.RunWorkerCompleted += (obj, arg) => { BWDBSet = null; }; TLogger.Add("Модуль Обновления статусов БД запущен!", TLogger.MSGType.eEmail); break; } } catch { retval = false; } } return retval; }
private bool PreRunModule(BGModule _Module) { /// Проверяем, что модуль остановлен if (!ModuleIsActive(_Module)) return true; return false; }