示例#1
0
        /// <summary>
        /// Функция, выполняющая вывод информации о работе программы в специальное окно
        /// </summary>
        /// <param name="info">Строка с информацией, которую необходимо вывести</param>
        void ToLogTB(string Info)
        {
            // Проверка, из какого потока вызывается функция
            if (InvokeRequired)
            {
                // Если не из главного
                Invoke(new Action(() => LogTB.Text += DateTime.Now + ": " + Info));

                // Во избежание переполнения окна вывода информации о работе программы
                if (LogTB.Text.Length >= 0.95 * LogTB.MaxLength)
                {
                    // Сохранение логов и очистка специального окна
                    SaveLogs();
                    Invoke(new Action(() => LogTB.Clear()));
                }
            }
            else
            {
                // Если из главного
                LogTB.Text += DateTime.Now + ": " + Info;

                // Во избежание переполнения окна вывода информации о работе программы
                if (LogTB.Text.Length >= 0.95 * LogTB.MaxLength)
                {
                    // Сохранение логов и очистка специального окна
                    SaveLogs();
                    LogTB.Clear();
                }
            }
        }
 private void Log(string message)
 {
     BeginInvoke((MethodInvoker) delegate
     {
         DateTime now = DateTime.Now;
         LogTB.AppendText($"[{now.ToShortDateString()} {now.ToLongTimeString()}] " + message + Environment.NewLine);
     });
 }
示例#3
0
        private void UpdateTimer_Tick(object sender, EventArgs e)
        {
            try
            {
                int      messageCount         = 0;
                int      totalItemUpdateCount = 0;
                DateTime firstMessageTime     = DateTime.MinValue;
                DateTime lastMessageTime      = DateTime.MinValue;
                int      minItemUpdateCount   = 0;
                int      maxItemUpdateCount   = 0;

                m_tester.GetStatistics(
                    out messageCount,
                    out totalItemUpdateCount,
                    out firstMessageTime,
                    out lastMessageTime,
                    out minItemUpdateCount,
                    out maxItemUpdateCount);

                string[] messages = m_tester.GetMessages();

                for (int ii = 0; ii < messages.Length; ii++)
                {
                    LogTB.AppendText(messages[ii]);
                    LogTB.AppendText(Environment.NewLine);
                }

                MessageCountTB.Text         = String.Format("{0}", messageCount);
                TotalItemUpdateCountTB.Text = String.Format("{0}", totalItemUpdateCount);
                TimeSpan delta = (lastMessageTime - firstMessageTime);

                if (delta.TotalMilliseconds > 0)
                {
                    LogTB.AppendText(Utils.Format("Checking Update Counts. Time={0}, Min={1}, Max={2}", DateTime.UtcNow.ToString("mm:ss.fff"), minItemUpdateCount, maxItemUpdateCount));
                    LogTB.AppendText(Environment.NewLine);

                    MessageRateTB.Text         = String.Format("{0}", delta.TotalSeconds);
                    TotalItemUpdateRateTB.Text = String.Format("{0}", ((double)totalItemUpdateCount) / delta.TotalSeconds);
                }
                else
                {
                    MessageRateTB.Text         = String.Empty;
                    TotalItemUpdateRateTB.Text = String.Empty;
                }
            }
            catch (Exception)
            {
                // TBD
            }
        }
        private static void UpdateLog(String StationName, List <Object[]> TableField)
        {
            db = RefreshDB();
            LogTB CheckLog = new LogTB();

            CheckLog.LogID       = TableField.ElementAt(0)[0].ToString();
            CheckLog.StationName = TableField.ElementAt(0)[0].ToString();
            CheckLog.LogDateTime = Convert.ToDateTime(TableField.ElementAt(0)[2]);
            CheckLog.UserID      = TableField.ElementAt(0)[3].ToString();
            CheckLog.Note        = TableField.ElementAt(0)[4].ToString();
            CheckLog.Problem     = TableField.ElementAt(0)[5].ToString();

            LogTB ExistingLog = db.LogTBs.FirstOrDefault(Item => Item.LogID == CheckLog.LogID);

            ExistingLog.LogDateTime = CheckLog.LogDateTime;
            ExistingLog.UserID      = CheckLog.UserID;
            ExistingLog.Note        = CheckLog.Note;
            ExistingLog.Problem     = CheckLog.Problem;

            db.SaveChangesAsync();
        }
示例#5
0
        /// <summary>
        /// Updates the application after connecting to or disconnecting from the server.
        /// </summary>
        private void Server_ConnectComplete(object sender, EventArgs e)
        {
            try
            {
                m_session = ConnectServerCTRL.Session;

                if (m_session == null)
                {
                    if (m_tester != null)
                    {
                        StopTest();
                    }

                    return;
                }

                // set a suitable initial state.
                if (m_session != null && !m_connectedOnce)
                {
                    m_connectedOnce = true;
                }

                LogTB.Clear();

                m_tester = new Tester();
                m_tester.SamplingRate = (int)UpdateRateCTRL.Value;
                m_tester.ItemCount    = (int)ItemCountCTRL.Value;
                m_tester.Start(m_session);

                UpdateTimer.Enabled = true;
                StopBTN.Visible     = true;
            }
            catch (Exception exception)
            {
                ClientUtils.HandleException(this.Text, exception);
            }
        }
示例#6
0
 private void addLog(string log)
 {
     LogTB.AppendText($"{DateTime.Now:T}: {log}");
     LogTB.AppendText(Environment.NewLine);
     LogTB.ScrollToEnd();
 }
示例#7
0
 private void LogTB_TextChanged(object sender, TextChangedEventArgs e)
 {
     LogTB.ScrollToEnd();
 }
示例#8
0
 /// <summary>
 /// Действия, выполняемые при нажатии на кнопку "Очистить" на вкладке "Логи системы"
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void LogB_Click(object sender, EventArgs e)
 {
     // Сохранение логов и очистка специального окна
     SaveLogs();
     Invoke(new Action(() => LogTB.Clear()));
 }
示例#9
0
 private void ProxyTB_TextChanged(object sender, EventArgs e)
 {
     LogTB.SelectionStart = LogTB.Text.Length;
     LogTB.ScrollToCaret();
 }
示例#10
0
        private static Object InsertLog(String StationName, List <Object[]> TableField)
        {
            try
            {
                db = RefreshDB();
                List <LogTB> LogList        = db.LogTBs.Where(Item => Item.StationName == StationName).ToList();
                List <LogTB> NewServerLog   = new List <LogTB>();
                List <LogTB> NewStationLog  = new List <LogTB>();
                List <LogTB> StationLogList = new List <LogTB>();

                foreach (Object[] ThisObject in TableField)
                {
                    LogTB NewLog = new LogTB();
                    NewLog.LogID       = ThisObject[0].ToString();
                    NewLog.StationName = ThisObject[1].ToString();
                    NewLog.LogDateTime = Convert.ToDateTime(ThisObject[2]);
                    NewLog.UserID      = ThisObject[3].ToString();
                    NewLog.Note        = ThisObject[4].ToString();
                    NewLog.Problem     = ThisObject[5].ToString();
                    StationLogList.Add(NewLog);
                }

                foreach (LogTB StationLog in StationLogList)
                {
                    Boolean IsFound = false;
                    foreach (LogTB ServerLog in LogList)
                    {
                        if (StationLog.LogID == ServerLog.LogID)
                        {
                            IsFound = true;
                            break;
                        }
                    }

                    if (!IsFound)
                    {
                        NewServerLog.Add(StationLog);
                    }
                }

                foreach (LogTB ServerLog in StationLogList)
                {
                    Boolean IsFound = false;
                    foreach (LogTB StationLog in LogList)
                    {
                        if (StationLog.LogID == ServerLog.LogID)
                        {
                            IsFound = true;
                            break;
                        }
                    }

                    if (!IsFound)
                    {
                        NewStationLog.Add(ServerLog);
                    }
                }

                db.LogTBs.AddRange(NewServerLog);
                db.SaveChangesAsync();
                return(NewStationLog);
            }
            catch (Exception e)
            {
                String Message = e.Message;
                return(null);
            }
        }