public void AckAlarms(string operatorName, string comment, Ssz.Utils.DataAccess.EventId[] eventIdsToAck)
        {
            BeginInvoke(ct =>
            {
                ClientEventList?clientEventList =
                    ClientEventListManager.GetRelatedClientEventList(OnEventMessagesCallbackInternal);

                if (clientEventList is null)
                {
                    return;
                }

                try
                {
                    if (clientEventList.Disposed)
                    {
                        return;
                    }

                    clientEventList.AckAlarms(operatorName, comment, eventIdsToAck);
                }
                catch (Exception ex)
                {
                    Logger.LogError(ex, "Exception");
                }
            }
                        );
        }
예제 #2
0
        public virtual async Task <Utils.DataAccess.EventMessage[]?> ReadEventMessagesJournalAsync(DateTime firstTimestampUtc, DateTime secondTimestampUtc, CaseInsensitiveDictionary <string>?params_)
        {
            var taskCompletionSource = new TaskCompletionSource <Utils.DataAccess.EventMessage[]?>();

            BeginInvoke(ct =>
            {
                ClientEventList?clientEventList =
                    ClientEventListManager.GetRelatedClientEventList(OnEventMessagesCallbackInternal);

                if (clientEventList is null)
                {
                    return;
                }

                try
                {
                    if (clientEventList.Disposed)
                    {
                        return;
                    }

                    var result = clientEventList.ReadEventMessagesJournal(firstTimestampUtc, secondTimestampUtc, params_).Select(em => em.ToEventMessage()).ToArray();
                    taskCompletionSource.SetResult(result);
                }
                catch (Exception ex)
                {
                    Logger.LogError(ex, "Exception");
                    taskCompletionSource.SetResult(null);
                }
            }
                        );
            return(await taskCompletionSource.Task);
        }