private void BaseServer_OutPutEvent(System.Diagnostics.DataReceivedEventArgs e)
        {
            try
            {
                var log = e.Data;
                if (log != null)
                {
                    if (TimePattern.Match(log).Success)
                    {
                        if (TypePattern.Match(log).Success)
                        {
                            var result = log.Remove(0, TimePattern.Match(log).ToString().Length);
                            var type   = TypePattern.Match(log).ToString().Split('/')[1].Split(']')[0];
                            var color  = "8BC34A";
                            if (type == "INFO")
                            {
                                color = "64B5F6";
                            }
                            else if (type == "WARN")
                            {
                                color = "f44336";
                            }
                            else if (type == "ERROR")
                            {
                                color = "f44336";
                            }
                            m_Client.Send(Encoding.UTF8.GetBytes("C," + color + "|" + log.Split('[')[1].Split(']')[0] + "|" + type + "|" + result));
                            P.AddToOutput(color, TimePattern.Match(log).ToString(), result, type);
                        }
                    }
                    else
                    {
                        P.AddToOutput("fff", "", log, "");
                    }
                }

                /*
                 * if (log.Split('[')[1] != null)
                 *  if (log.Split('[')[1].Split(']')[0] != null)
                 *      if (log.Split('[')[1].Split(']')[0].Split(':') != null)
                 *          if (log.Split('[')[1].Split(']')[0].Split(':').Length == 3)
                 *          {
                 *              var result = log.Replace(log.Split(']')[0] + "]", "");
                 *              var type = result.Split('[')[1].Split(']')[0].Split('/')[1];
                 *              var thread = result.Split('[')[1].Split(']')[0].Split('/')[0];
                 *
                 *              var color = "8BC34A";
                 *              if (type == "INFO")
                 *                  color = "64B5F6";
                 *              else if (type == "WARN")
                 *                  color = "f44336";
                 *              else if (type == "ERROR")
                 *                  color = "f44336";
                 *              client.SendString("C," + color + "|" + log.Split('[')[1].Split(']')[0]+ "|" + type + "|" + result);
                 *              Task.Run(() => { P.AddToOutput(color, log.Split('[')[1].Split(']')[0], result, type); });
                 *          }
                 *          else
                 *          {
                 *              client.SendString("C," + "" + "|" + log + "|" + "" + "|" + "");
                 *              P.AddToOutput("fff", "", log, "");
                 *          }
                 */
            }
            catch { }
        }
        /// <summary>
        /// 讀取資料到畫面上
        /// </summary>
        private void ReadJob2Screen(string JobId)
        {
            try
            {
                txtJobId.Text = JobId;

                JobData job = frmScheduleJobUI.Jobs.JobDatas.AsEnumerable().Where(c => c.JobId == JobId).FirstOrDefault();
                if (job != null)
                {
                    txtJobName.Text   = job.JobName;
                    labDLLName.Text   = job.DLLName;
                    labClassName.Text = job.ClassName;
                    txtNameSpace.Text = job.NameSpace;

                    switch (job.UsePeriodType)
                    {
                    case PeriodType.BY_DAILY:
                        if (!string.IsNullOrEmpty(job.ExecuteTime) && job.ExecuteTime != "00:00")     //為時間區隔的反覆性週期工作
                        {
                            if (!TimePattern.Match(job.ExecuteTime).Success)
                            {
                                numHourHH.Focus();
                                throw new Exception("每 HH:ss 反覆執行中的 (小時:分鐘) 設定不正確。");
                            }
                            //屬於每日,且週期性的固定在 HH:ss 中反覆執行.
                            rbHHss.Enabled = true;
                            SetHHssByJobTime(job.ExecuteTime, numHourHH, numMinuteHH);
                            cbEnableTime.Checked = job.Enabled;
                        }
                        else
                        {
                            //屬於每天執行的排程
                            rbDay.Checked = true;
                            if (!TimePattern.Match(job.StartTime).Success)
                            {
                                numHourDay.Focus();
                                throw new Exception("(天) 排程中的 (小時:分鐘) 設定不正確。");
                            }
                            SetHHssByJobTime(job.StartTime, numHourDay, numMinuteDay);
                            cbPeriodDay.Checked = job.IsPeriodJob == PeriodJob.IS_PERIOD;
                            cbEnableDay.Checked = job.Enabled;
                        }
                        break;

                    case PeriodType.BY_WEEKLY:
                        rbWeek.Checked = true;
                        cbExecWeek.SelectedIndex
                            = cbExecWeek.Items.IndexOf(cbExecWeek.Items.OfType <ListItem>()
                                                       .Where(c => c.ValueMember == job.ExceuteWeek.ToString()).FirstOrDefault());

                        SetHHssByJobTime(job.StartTime, numHourWeek, numMinuteWeek);
                        cbPeriodWeek.Checked = job.IsPeriodJob == PeriodJob.IS_PERIOD;
                        cbEnableWeek.Checked = job.Enabled;
                        break;

                    case PeriodType.BY_MONTHLY:
                        rbMonth.Checked = true;
                        cbExecDay.SelectedIndex
                            = cbExecDay.Items.IndexOf(cbExecDay.Items.OfType <ListItem>()
                                                      .Where(c => c.ValueMember == job.ExecuteDay.ToString()).FirstOrDefault());

                        SetHHssByJobTime(job.StartTime, numHourMonth, numMinuteMonth);
                        cbPeriodMonth.Checked = job.IsPeriodJob == PeriodJob.IS_PERIOD;
                        cbEnableMonth.Checked = job.Enabled;
                        break;
                    }
                    txtEMailAddress.Text = job.EMailAddress;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format("顯示排程工作資料時,發生錯誤!詳細訊息:{0}", ex.Message), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }