private int InsertEvents(EventRecord[] eventRecords, int prevEventsCount)
        {
            // конвертируем события в элементы списка
            var lviBuf = new ListViewItem[eventRecords.Length];

            for (int i = 0; i < eventRecords.Length; i++)
            {
                lviBuf[i]            = new ListViewItem();
                lviBuf[i].Text       = eventRecords[i].Timestamp.ToString("dd MMM yyyy  HH:mm:ss");
                lviBuf[i].ImageIndex = (int)eventRecords[i].EventType - 1;
                lviBuf[i].SubItems.Add(eventRecords[i].Source);
                lviBuf[i].SubItems.Add(EventTypeConvertor.ConvertFrom(eventRecords[i].EventType));
                lviBuf[i].SubItems.Add(eventRecords[i].Text[0]);
                lviBuf[i].Tag = eventRecords[i];
            }

            prevEventsCount += eventRecords.Length;

            _guiSyncContext.Send((state) =>
            {
                _lv.Items.AddRange(lviBuf);

                if (_notifyOnReloadProgress)
                {
                    _sourceConnector.ReloadProgress(prevEventsCount);
                }
            }, null);

            return(prevEventsCount);
        }
示例#2
0
        /// <summary>
        /// Создает событие из записи лога
        /// </summary>
        /// <param name="storageEntry">Запись лога</param>
        /// <returns>Новое событие</returns>
        internal static EventRecord CreateFromStorageEntry(string[] storageEntry)
        {
            // создаем запись
            EventRecord record = new EventRecord(
                storageEntry[0],
                TimestampFromStorage(storageEntry[1], storageEntry[2]),
                storageEntry[3],
                EventTypeConvertor.ConvertTo(storageEntry[4]),
                new string[] { storageEntry[5] });

            // возвращаем ее
            return(record);
        }
示例#3
0
        /// <summary>
        /// Преобразование комбинации флагов фильтра типов событий в список строк
        /// </summary>
        /// <param name="eventTypes">Список допустимых типов событий</param>
        private List <string> EventsToStrings(EventType[] eventTypes)
        {
            List <string> eventsToPass = new List <string>();

            if (eventTypes != null)
            {
                foreach (EventType et in eventTypes)
                {
                    eventsToPass.Add(EventTypeConvertor.ConvertFrom(et));
                }
            }
            return(eventsToPass);
        }
        /// <summary>
        /// Инициализация элементов управления данными записи
        /// </summary>
        /// <param name="eventRecord">Ссылка на интерфейс записи</param>
        private void InitializeControls(EventRecord eventRecord)
        {
            // проверяем валидность интерфейса
            if (eventRecord == null)
            {
                throw new ArgumentNullException("eventRecord");
            }

            // дата и время
            lblDateTime.Text = string.Format("Дата и время: {0}",
                                             eventRecord.Timestamp.ToString("dd MMM yyyy  HH:mm:ss"));
            // источник события
            lblSource.Text = string.Format("Приложение: {0}", eventRecord.Source);
            // тип события
            lblEventType.Text = string.Format("Тип: {0}",
                                              EventTypeConvertor.ConvertFrom(eventRecord.EventType));
            // текст события
            tbText.Lines          = eventRecord.Text.ToArray();
            tbText.SelectionStart = 0;
        }
示例#5
0
        /// <summary>
        /// Запись данных события
        /// </summary>
        /// <param name="record">Запись кассового лога</param>
        /// <param name="textWriter">Объект для записи данных</param>
        internal static void Save(EventRecord record, TextWriter textWriter)
        {
            // каждую строку текста события записываем в отдельную позицию лога
            // многострочный текст определяется одним идентификатором
            foreach (var line in record.Text)
            {
                var logLine = new StringBuilder();

                // идентификатор
                logLine.Append(record.Id.Replace(Dash, string.Empty));
                // табуляция
                logLine.Append(Tab);
                // дата
                logLine.Append(record.Timestamp.ToString("dd.MM.yyyy"));
                // табуляция
                logLine.Append(Tab);
                // время
                logLine.Append(record.Timestamp.ToString("HH.mm.ss"));
                // табуляция
                logLine.Append(Tab);
                // источник события
                // выравниваем по левому краю до 15 символов
                logLine.Append(record.Source.PadRight(15));
                // табуляция
                logLine.Append(Tab);
                // тип события
                logLine.Append(EventTypeConvertor.ConvertFrom(record.EventType).PadRight(15));
                // табуляция
                logLine.Append(Tab);
                // строка текста события
                logLine.Append(line);

                // запись строки в лог
                textWriter.WriteLine(logLine.ToString());
            }
        }