private void ImMarked(ImMarked message) { var im = base.BotState.Ims.FirstOrDefault(i => i.Id == message.Channel); if (im == null) { return; } im.LastRead = message.Ts; }
public void HandlesValidImMarked() { var ims = new List <DirectMessageChannel> { new DirectMessageChannel { Id = "CHANID1", LastRead = "1000" } }; var mockState = SetupChannelsMock(ims); var message = new ImMarked { Type = EventType.ImMarked, Channel = "CHANID1", Ts = "1001" }; RunHandler(message, mockState); Assert.Equal(1, ims.Count); Assert.Equal("1001", ims[0].LastRead); }
private async void OnImMarked(ImMarked message) { Logger.LogDebug($"Received => Type: {message.type} - SubType: {message.subtype} - Channel: {Context.GetNameFromId(message.channel)} - Raw: {GetRawMessage(message)}"); if (ShouldMonitor(message.channel)) { var directMessageConversation = new Channel() { id = message.channel }; var channelNotification = Context.ChannelsInfo[directMessageConversation.id]; var messages = await RunSlackClientMethodAsync <ConversationsMessageHistory, Message[]>( x => Client.GetConversationsHistory(x, directMessageConversation, null, message.ts, HistoryItemsToFetch), x => x.messages); messages = messages.Where(y => FilterMessageByDate(y, message.ts)).ToArray(); var hasUnreadMessages = messages.Any(y => y.user != Client.MySelf.id); channelNotification.Update(hasUnreadMessages, hasUnreadMessages); } else { Logger.LogDebug("Message dropped"); } }