/// <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 }); }
public void AddNewMessages(IEnumerable <Message> messages) { Messages.AddRange(messages); purgeOldMessages(); NewMessagesArrived?.Invoke(messages); }
public void AddNewMessages(params Message[] messages) { Messages.AddRange(messages); purgeOldMessages(); NewMessagesArrived?.Invoke(messages); }
public void AddNewMessages(params Message[] messages) { messages = messages.Except(Messages).ToArray(); Messages.AddRange(messages); purgeOldMessages(); NewMessagesArrived?.Invoke(messages); }
public void AddNewMessages(IEnumerable <Message> messages) { messages = messages.Except(Messages).ToList(); Messages.AddRange(messages); purgeOldMessages(); NewMessagesArrived?.Invoke(messages); }
/// <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); }