Beispiel #1
0
 /// <summary>
 /// Запуск процессов сервиса
 /// </summary>
 /// <param name="args">Аргументы коммандной строки</param>
 protected override void OnStart(string[] args)
 {
     // Run
     TConfig config = new TConfig();
     try {
         config = (TConfig)config.LoadXML("config.xml");
     }
     catch (Exception _ex)
     {
         Console.WriteLine("Fatal Error! Cann't load config.xml! EXCEPTION: " + _ex.Message);
         return;
     }
     TConnector.Init(config);
     TLogger.Init("PPFSend", config);
     robot.Run(config);
     if (config.InfoServerPort > 0)
     {
         TServer.Run(config.InfoServerPort, (obj) =>
         {
             if (obj != null && obj.ToString() != "" && obj.ToString()[0]=='/')
                 return robot.ParseCMD(obj.ToString().Substring(1));
             return "";
         });
     }
 }
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     /*List<TMSG> list = new List<TMSG>();
     list.Add(new TMSG());
     list.Add(new TMSG());
     list.Add(new TMSG());
     DataTable dt = list.ToDataTable();
     XmlDocument xml = list.Serialize(new List<string>() { "ID","Address", "DBStatusInt" });*/
     this.Visibility = Visibility.Hidden;
     m_config = (TConfig)m_config.LoadXML("config.xml");
     TConnector.Init(m_config);
     LoadData();
     TLogger.NoEmail = true;
     TLogger.Init("PPFSend", m_config);
     TLogger.NoEmail = false;
     this.Visibility = Visibility.Visible;
 }
Beispiel #3
0
 public void Run(TConfig _config, OnDBChangedDelegate _ondbchange = null)
 {
     m_StartDate = DateTime.Now;
     TLogger.Add("Начинается запуск MMB", TLogger.MSGType.eEmail);
     if (_config == null || _config.DBAuth == null)
     {
         TLogger.Add("Ошибка чтения кофигурационного файла. Не указаны учетные данные БД MMB.", TLogger.MSGType.eEmail);
         return;
     }
     Config = _config;
     TLogger.NoEmail = true;
     TMSG.Timeout = Config.MessageTimeout;
     OnDBChange = _ondbchange;
     RunModule(BGModule.eTicker);
     RunModule(BGModule.eGetDB);
     RunModule(BGModule.eSendSMS);
     RunModule(BGModule.eSendEMail);
     //BWSendEMAIL = null;
     RunModule(BGModule.eSendCab);
     RunModule(BGModule.eSendRPost);
     RunModule(BGModule.eGetStatus);
     RunModule(BGModule.eSetDb);
     TLogger.NoEmail = false;
     TLogger.Add("MMB успешно запущен", TLogger.MSGType.eEmail);
 }
Beispiel #4
0
 public string ParseCMD(string _cmd)
 {
     string retval = @"<html>
                   <head>
                   <meta charset = 'utf-8'>
                   <title> Текущее состояние рассыльщика</title>
                   </head>
                   <body>";
     if (_cmd != null)
     {
         string[] cmdarr = _cmd.Split('/');
         if (_cmd == "")
             retval = GetState();
         if (cmdarr.Length > 0)
         {
             switch (cmdarr[0].ToUpper())
             {
                 case "RECONFIG":
                     TConfig config = new TConfig();
                     bool ok = true;
                     try
                     {
                         config = (TConfig)config.LoadXML("config.xml");
                     }
                     catch (Exception _ex)
                     {
                         ok = false;
                         TLogger.Add("Не удалось обновить конфигурацию MMB! EXCEPTION: " + _ex.Message, TLogger.MSGType.eEmail);
                         retval += "<h1>Не удалось обновить конфигурацию MMB! EXCEPTION: " + _ex.Message + "</h1>";
                     }
                     if (ok)
                     {
                         TConnector.Init(config);
                         TLogger.Init("PPFSend", config);
                         Config = config;
                         TServer.Kill();
                         if (config.InfoServerPort > 0)
                         {
                             TServer.Run(config.InfoServerPort, (obj) =>
                             {
                                 if (obj != null && obj.ToString() != "" && obj.ToString()[0] == '/')
                                     return this.ParseCMD(obj.ToString().Substring(1));
                                 return "";
                             });
                         }
                         TLogger.Add("Конфигурация MMB обновлена!", TLogger.MSGType.eEmail);
                         retval += "<h1>Конфигурация MMB обновлена!</h1>";
                     }
                     break;
        /*                     case "SEND":
                     if (cmdarr.Length >= 4)
                     {
                         TMSG msg = new TMSG();
                         switch (cmdarr[1].ToUpper())
                         {
                             case "SMS":
                                 msg.Channel = MSGDeliveryChannel.eSMS;
                                 break;
                             case "EMAIL":
                                 msg.Channel = MSGDeliveryChannel.eEmail;
                                 break;
                             case "CAB":
                                 msg.Channel = MSGDeliveryChannel.eCab;
                                 break;
                         }
                         msg.Priority = int.Parse(cmdarr[2]);
                         msg.Address = cmdarr[3];
                         for (int i = 4; i<cmdarr.Length; i++)
                         {
                             msg.Text += cmdarr[i];
                         }
                         msg.ToSend = DateTime.Now;
                         msg.AddDate = DateTime.Now;
                         msg.ID = DBQuery.InsertMSG(msg);
                         if (msg.ID >= 0)
                         {
                             lock (Queue2Send)
                             {
                                 Queue2Send.Add(msg);
                             }
                             retval += "<h1>Сообщение с текстом: '" + msg.Text + "' отправлено по адресу " + msg.Address + "</h1>";
                         }
                         if (OnDBChange != null)
                             OnDBChange();
                     }
                     break;*/
                 case "MODULE":
                     if (cmdarr.Length >=3)
                     {
                         List<BGModule> module = new List<BGModule>();
                         switch (cmdarr[1].ToUpper())
                         {
                             case "DBGET":
                                 module.Add(BGModule.eGetDB);
                                 break;
                             case "SENDSMS":
                                 module.Add(BGModule.eSendSMS);
                                 break;
                             case "SENDEMAIL":
                                 module.Add(BGModule.eSendEMail);
                                 break;
                             case "SENDCAB":
                                 module.Add(BGModule.eSendCab);
                                 break;
                             case "SENDRPOST":
                                 module.Add(BGModule.eSendRPost);
                                 break;
                             case "GETSTATUS":
                                 module.Add(BGModule.eGetStatus);
                                 break;
                             case "DBSET":
                                 module.Add(BGModule.eSetDb);
                                 break;
                             case "SEND":
                                 module.Add(BGModule.eSendSMS);
                                 module.Add(BGModule.eSendEMail);
                                 module.Add(BGModule.eSendCab);
                                 module.Add(BGModule.eSendRPost);
                                 break;
                             case "ALL":
                                 module.Add(BGModule.eGetDB);
                                 module.Add(BGModule.eSendSMS);
                                 module.Add(BGModule.eSendEMail);
                                 module.Add(BGModule.eSendCab);
                                 module.Add(BGModule.eSendRPost);
                                 module.Add(BGModule.eGetStatus);
                                 module.Add(BGModule.eSetDb);
                                 break;
                         }
                         switch (cmdarr[2].ToUpper())
                         {
                             case "STOP":
                                 foreach (var mod in module)
                                 {
                                     if (StopModule(mod))
                                         retval += "<h1>Модуль "+mod+" остановлен.</h1>";
                                     else
                                         retval += "<h1>Не удалось остановить модуль " + mod + ".</h1>";
                                 }
                                 break;
                             case "START":
                                 foreach (var mod in module)
                                 {
                                     if (RunModule(mod))
                                         retval += "<h1>Модуль " + mod + " запущен.</h1>";
                                     else
                                         retval += "<h1>Не удалось запустить модуль " + mod + ".</h1>";
                                 }
                                 break;
                             case "RESTART":
                                 foreach (var mod in module)
                                 {
                                     if (StopModule(mod))
                                         retval += "<h1>Модуль " + mod + " остановлен.</h1>";
                                     else
                                         retval += "<h1>Не удалось остановить модуль " + mod + ".</h1>";
                                 }
                                 foreach (var mod in module)
                                 {
                                     if (RunModule(mod))
                                         retval += "<h1>Модуль " + mod + " запущен.</h1>";
                                     else
                                         retval += "<h1>Не удалось запустить модуль " + mod + ".</h1>";
                                 }
                                 break;
                         }
                     }
                     break;
                 case "INFO":
                         retval = GetState();
                     break;
             }
         }
     }
     retval += "</body></html>";
     return retval;
 }
Beispiel #5
0
 public static void Init(string _FilePrefix, TConfig _config)
 {
     CurCreateDate = DateTime.Now;
     FilePrefix = _FilePrefix;
     Config = _config;
     Close();
     BGWSendEmail = new BackgroundWorker();
     BGWSendEmail.WorkerSupportsCancellation = true;
     BGWSendEmail.DoWork += BGWSendEmail_DoWork;
     BGWSendEmail.RunWorkerCompleted += (obj, arg) =>
     {
         BGWSendEmail = null;
     };
     BGWSendEmail.RunWorkerAsync();
     PrepareLog();
 }
Beispiel #6
0
 public static void Init(TConfig _config)
 {
     Config = _config;
 }