コード例 #1
0
ファイル: TRobot.cs プロジェクト: artemablitsov/PPFSendII
 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;
 }
コード例 #2
0
ファイル: TRobot.cs プロジェクト: artemablitsov/PPFSendII
 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;
 }
コード例 #3
0
ファイル: TRobot.cs プロジェクト: artemablitsov/PPFSendII
 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;
 }
コード例 #4
0
ファイル: TRobot.cs プロジェクト: artemablitsov/PPFSendII
 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;
 }
コード例 #5
0
ファイル: TRobot.cs プロジェクト: artemablitsov/PPFSendII
 private bool PreRunModule(BGModule _Module)
 {
     /// Проверяем, что модуль остановлен
     if (!ModuleIsActive(_Module))
         return true;
     return false;
 }