// Проверка файлов 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()); } }