public async void WriteChannel(string command) { SlackChatHub channel = connection.ConnectedChannels().Where(x => x.Name == "#general").FirstOrDefault(); var message = new BotMessage(); message.ChatHub = channel; message.Text = command; await connection.Say(message); }
public void should_say_something_on_channel() { // given var slackConnector = new SlackConnector.SlackConnector(); var connection = slackConnector.Connect(_config.Slack.ApiToken).Result; var message = new BotMessage { Text = "Test text from SlackConnectorTests :)", ChatHub = connection.ConnectedChannels().First(x => x.Name.Equals("#general", StringComparison.InvariantCultureIgnoreCase)) }; // when connection.Say(message).Wait(); // then }
private void PublishMessageSync(ISlackMessage slackMessage) { var slackConnector = new SlackConnector.SlackConnector(); var connection = slackConnector.Connect(slackMessage.Token).Result; var message = new BotMessage { Text = slackMessage.Text, ChatHub = connection.ConnectedChannels() .First( x => x.Name.Equals("#" + slackMessage.Channel.Trim('#'), StringComparison.InvariantCultureIgnoreCase)) }; connection.Say(message).Wait(); }
public void PublishMessage(ISlackMessage slackMessage) { if (string.IsNullOrWhiteSpace(slackMessage.Token) || string.IsNullOrWhiteSpace(slackMessage.Channel) || string.IsNullOrWhiteSpace(slackMessage.Username) || string.IsNullOrWhiteSpace(slackMessage.Text)) return; var slackConnector = new SlackConnector.SlackConnector(); var connection = slackConnector.Connect(slackMessage.Token).Result; var message = new BotMessage { Text = slackMessage.Text, ChatHub = connection.ConnectedChannels() .First( x => x.Name.Equals("#" + slackMessage.Channel.Trim('#'), StringComparison.InvariantCultureIgnoreCase)) }; // when connection.Say(message).Wait(); }
public async Task SendMessage(ResponseMessage responseMessage) { SlackChatHub chatHub = await GetChatHub(responseMessage); if (chatHub != null) { if (responseMessage is TypingIndicatorMessage) { _log.Info($"Indicating typing on channel '{chatHub.Name}'"); await _connection.IndicateTyping(chatHub); } else { var botMessage = new BotMessage { ChatHub = chatHub, Text = responseMessage.Text, Attachments = GetAttachments(responseMessage.Attachment) }; string textTrimmed = botMessage.Text.Length > 50 ? botMessage.Text.Substring(0, 50) + "..." : botMessage.Text; _log.Info($"Sending message '{textTrimmed}'"); await _connection.Say(botMessage); } } else { _log.Error($"Unable to find channel for message '{responseMessage.Text}'. Message not sent"); } }
public Task Say(BotMessage message) { throw new NotImplementedException(); }
public async Task SendMessage(ResponseMessage responseMessage) { SlackChatHub chatHub = null; if (responseMessage.ResponseType == ResponseType.Channel) { chatHub = new SlackChatHub { Id = responseMessage.Channel }; } else if (responseMessage.ResponseType == ResponseType.DirectMessage) { if (string.IsNullOrEmpty(responseMessage.Channel)) { chatHub = await GetUserChatHub(responseMessage.UserId); } else { chatHub = new SlackChatHub { Id = responseMessage.Channel }; } } if (chatHub != null) { var botMessage = new BotMessage { ChatHub = chatHub, Text = responseMessage.Text }; await _client.Say(botMessage); } else { Console.WriteLine("Unable to find channel for message '{0}'. Message not sent", responseMessage.Text); } }
public async Task Say(BotMessage message) { if (string.IsNullOrEmpty(message.ChatHub?.Id)) { throw new MissingChannelException("When calling the Say() method, the message parameter must have its ChatHub property set."); } var client = _connectionFactory.CreateChatClient(); await client.PostMessage(SlackKey, message.ChatHub.Id, message.Text, message.Attachments); }