示例#1
0
        /// <summary>
        /// Writes the event.
        /// </summary>
        public override void WriteEvent(Event ev)
        {
            EventTable eventTable = GetEventTable(ev.Timestamp);

            stopwatch.Restart();
            adapter.FileName = eventTable.FileName;

            if (eventTable.AddEvent(ev))
            {
                adapter.AppendEvent(ev); // write new event
            }
            else if (ev.Ack)
            {
                adapter.WriteEventAck(ev); // update acknowledgement
            }
            eventTable.LastWriteTime = File.GetLastWriteTimeUtc(eventTable.FileName);
            stopwatch.Stop();
            arcLog?.WriteAction(ServerPhrases.WritingEventCompleted, stopwatch.ElapsedMilliseconds);
        }
示例#2
0
        /// <summary>
        /// Acknowledges the event.
        /// </summary>
        public override void AckEvent(long eventID, DateTime timestamp, int userID)
        {
            EventTable eventTable = GetEventTable(ScadaUtils.RetrieveTimeFromID(eventID));
            Event      ev         = eventTable.GetEventByID(eventID);

            if (ev != null)
            {
                stopwatch.Restart();
                ev.Ack          = true;
                ev.AckTimestamp = timestamp;
                ev.AckUserID    = userID;

                adapter.FileName = eventTable.FileName;
                adapter.WriteEventAck(ev);
                eventTable.FileAge = File.GetLastWriteTimeUtc(eventTable.FileName);

                stopwatch.Stop();
                arcLog?.WriteAction(ServerPhrases.AckEventCompleted, stopwatch.ElapsedMilliseconds);
            }
        }