Exemplo n.º 1
0
 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();
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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");
            }
        }
Exemplo n.º 6
0
 public Task Say(BotMessage message)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 8
0
        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);
        }