// Отображение сообщений private void ShowMessage(string text, bool isError = false) { Drawing.Color color = (isError) ? Drawing.Color.Red : Drawing.Color.Green; MainStrip.InvokeIfRequired(delegate { StatusLabel.Text = text; StatusLabel.ForeColor = color; }); }
public MainForm() { InitializeComponent(); GuiController.MainForm = this; try { // Запускаем таймер для отображения часов ClockTimer = new System.Threading.Timer(delegate(object s) { try { MainStrip.InvokeIfRequired(() => TimeStripLabel.Text = DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss")); } catch { } }, null, 0, 300); if (AppHelper.Configuration.RunInFullScreen) { this.SwitchFullScreenMode(); } // Начинаем прослушивать COM порт AppHelper.ComListener = new ComListener(AppHelper.Configuration.BarcodeScanner.ComPort, AppHelper.Configuration.BarcodeScanner.BaudRate); AppHelper.ComListener.BarcodeReaded += BarcodeReaded; AppHelper.ComListener.Listen(); // Если смена была ранее открыта, то возобновляем её if (!string.IsNullOrEmpty(AppHelper.Configuration.SessionUserName)) { if (!SessionManager.CreateNewSession(AppHelper.Configuration.SessionUserName)) { GuiController.CreateMessage("Не удалось возобновить смену. Проверьте конфигурационный файл", true); } else { GuiController.CreateMessage("Возобновлена смена под пользователем " + SessionManager.WorkerName, false); } } /*PrivateFontCollection fontCollection = new PrivateFontCollection(); * fontCollection.AddFontFile(@".\Fonts\Century-Gothic.ttf"); * FontFamily fontFamily = new FontFamily("Century Gothic", fontCollection); * Font = new Font(fontFamily, 8);*/ } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); Load += (s, e) => GuiController.ExitApplication(); } }
// Проверка файлов private void CheckFiles() { try { IsRunning = true; int hours = (AppHelper.Configuration.Global.SearchDaysCount * 24); DateTime begin = DateTime.Now.AddHours(hours.ToNegative()); DateTime beginUTC = DateTime.Now.ToUniversalTime().Date.AddHours(hours.ToNegative()); ShowMessage("Получение списка созданных файлов ОАСУ РПО..."); List <FileInfo> files = SQLHelper.GetCreatedFiles(AppHelper.Configuration.Global.SearchDaysCount).ToList(); List <string> msgFiles = new List <string>(); ShowMessage("Получение списка отправленных файлов ОАСУ РПО..."); ItemType[] messages = ExchangeMailHelper.GetMessages(beginUTC); foreach (ItemType item in messages) { Match match = new Regex(AppHelper.Configuration.Exchange.MessageRegex).Match(item.Subject); if (match.Success) { msgFiles.Add(match.Groups["FILE"].Value); } } ShowMessage("Проверка успешно отправленных файлов ОАСУ РПО..."); List <ListViewItem> items = new List <ListViewItem>(); FilesBox.InvokeIfRequired(() => FilesBox.Items.Clear()); string message = ""; foreach (FileInfo file in files) { if (string.IsNullOrEmpty(msgFiles.Find(x => x == file.FileName))) { ListViewItem item = new ListViewItem(file.FileName); item.SubItems.Add(file.TimeEnd.ToString()); items.Add(item); message += string.Format("{0}\t{1}\r\n", file.FileName, file.TimeEnd); } } int count = items.Count; FilesBox.InvokeIfRequired(() => FilesBox.Items.AddRange(items.ToArray())); if (count > 0) { notifyWindow.InvokeIfRequired(() => notifyWindow.Message = message); this.InvokeIfRequired(delegate { Drawing.Rectangle workingArea = Screen.GetWorkingArea(this); notifyWindow.Location = new Drawing.Point(workingArea.Right - notifyWindow.Size.Width, workingArea.Bottom - notifyWindow.Size.Height); notifyWindow.Show(this); }); } else { notifyWindow.InvokeIfRequired(delegate { notifyWindow.Message = ""; notifyWindow.HideDialog(); }); } ShowMessage(string.Format("Неотправленные файлы за период ({0} - {1}): {2} шт.", begin.ToString("dd.MM.yyyy"), DateTime.Now.ToString("dd.MM.yyyy"), count), (count > 0)); } catch (Exception error) { ShowMessage("Ошибка", true); AppHelper.Log.Write("Ошибка во время операции проверки: " + error.ToString(), Feodosiya.Lib.Logs.MessageType.Error); } finally { IsRunning = false; ManualExecButton.InvokeIfRequired(() => ManualExecButton.Enabled = true); SettingsButton.InvokeIfRequired(() => SettingsButton.Enabled = true); FilesBox.InvokeIfRequired(() => FilesBox.Enabled = true); MainStrip.InvokeIfRequired(() => LastOperationLabel.Text = DateTime.Now.ToString()); } }