Пример #1
0
        /// <summary>
        /// Adds the argument message as a local echo. When this local echo is resolved <see cref="PendingMessageResolved"/> will get called.
        /// </summary>
        /// <param name="message"></param>
        public void AddLocalEcho(LocalEchoMessage message)
        {
            pendingMessages.Add(message);
            Messages.Add(message);

            NewMessagesArrived?.Invoke(new[] { message });
        }
Пример #2
0
        public void AddNewMessages(IEnumerable <Message> messages)
        {
            Messages.AddRange(messages);
            purgeOldMessages();

            NewMessagesArrived?.Invoke(messages);
        }
Пример #3
0
        public void AddNewMessages(params Message[] messages)
        {
            Messages.AddRange(messages);
            purgeOldMessages();

            NewMessagesArrived?.Invoke(messages);
        }
Пример #4
0
        public void AddNewMessages(params Message[] messages)
        {
            messages = messages.Except(Messages).ToArray();

            Messages.AddRange(messages);

            purgeOldMessages();

            NewMessagesArrived?.Invoke(messages);
        }
Пример #5
0
        public void AddNewMessages(IEnumerable <Message> messages)
        {
            messages = messages.Except(Messages).ToList();

            Messages.AddRange(messages);

            purgeOldMessages();

            NewMessagesArrived?.Invoke(messages);
        }
Пример #6
0
        /// <summary>
        /// Adds new messages to the channel and purges old messages. Triggers the <see cref="NewMessagesArrived"/> event.
        /// </summary>
        /// <param name="messages"></param>
        public void AddNewMessages(params Message[] messages)
        {
            messages = messages.Except(Messages).ToArray();

            if (messages.Length == 0)
            {
                return;
            }

            Messages.AddRange(messages);

            var maxMessageId = messages.Max(m => m.Id);

            if (maxMessageId > LastMessageId)
            {
                LastMessageId = maxMessageId;
            }

            purgeOldMessages();

            NewMessagesArrived?.Invoke(messages);
        }