private Dictionary<string, SlackChatHub> GetChatHubs(HandshakeResponse handshakeResponse) { var hubs = new Dictionary<string, SlackChatHub>(); foreach (Channel channel in handshakeResponse.Channels.Where(x => !x.IsArchived)) { if (channel.IsMember) { var newChannel = new SlackChatHub { Id = channel.Id, Name = "#" + channel.Name, Type = SlackChatHubType.Channel }; hubs.Add(channel.Id, newChannel); } } foreach (Group group in handshakeResponse.Groups.Where(x => !x.IsArchived)) { if (group.Members.Any(x => x == handshakeResponse.Self.Id)) { var newGroup = new SlackChatHub { Id = group.Id, Name = "#" + group.Name, Type = SlackChatHubType.Group }; hubs.Add(group.Id, newGroup); } } foreach (Im im in handshakeResponse.Ims) { User user = handshakeResponse.Users.FirstOrDefault(x => x.Id == im.User); var dm = new SlackChatHub { Id = im.Id, Name = "@" + (user == null ? im.User : user.Name), Type = SlackChatHubType.DM }; hubs.Add(im.Id, dm); } return hubs; }
private async Task<IWebSocketClient> GetWebSocket(HandshakeResponse handshakeResponse) { var webSocketClient = _connectionFactory.CreateWebSocketClient(handshakeResponse.WebSocketUrl); await webSocketClient.Connect(); return webSocketClient; }