Esempio n. 1
0
        protected async virtual void OnMessageReceived(MessageSlackMessage messageSlackMessage)
        {
            if (messageSlackMessage != null)
            {
                WriteLineToConsole($"Message received");

                string text = messageSlackMessage.Text;

                if ((String.IsNullOrEmpty(text) == false) && ((text.StartsWith($"@{_name}") == true) || (text.StartsWith($"<@{_id}>") == true)))
                {
                    string channelID = messageSlackMessage.ChannelID;
                    User   user      = _users.Where(m => (m.ID == messageSlackMessage.UserID)).FirstOrDefault();
                    SlackMessageContext slackMessageContext = new SlackMessageContext(channelID, user, text);

                    WriteLineToConsole($"Message for {_name} from {user.Name}");

                    foreach (MessageHandler messageHandler in _messageHandlers.Where(m => (m.IsHandle(slackMessageContext) == true)))
                    {
                        SlackMessageResponse oSlackMessageResponse = messageHandler.GetResponse(slackMessageContext);

                        await SendTypingResponse(slackMessageContext);
                        await Send(slackMessageContext, oSlackMessageResponse);
                    }
                }
            }
        }
Esempio n. 2
0
        private async Task SendTypingResponse(SlackMessageContext slackMessageContext)
        {
            TypingSlackResponse typingSlackResponse = new TypingSlackResponse()
            {
                Channel = slackMessageContext.ChannelID,
                ID      = DateTime.Now.Ticks
            };

            await Send(typingSlackResponse);
        }
Esempio n. 3
0
        private async Task Send(SlackMessageContext slackMessageContext, SlackMessageResponse slackMessageResponse)
        {
            BotResponderSlackResponse oBotResponderSlackResponse = new BotResponderSlackResponse()
            {
                Channel = slackMessageContext.ChannelID,
                ID      = DateTime.Now.Ticks,
                Text    = slackMessageResponse.Text
            };

            await Send(oBotResponderSlackResponse);
        }
Esempio n. 4
0
        public override bool IsHandle(SlackMessageContext slackMessageContext)
        {
            bool isRespond = base.IsHandle(slackMessageContext);

            string message = slackMessageContext.Text.SkipFirstWord();

            if (message.ToLower().StartsWith("hello") == true)
            {
                isRespond = true;
            }

            return(isRespond);
        }
Esempio n. 5
0
 public override SlackMessageResponse GetResponse(SlackMessageContext slackMessageContext)
 {
     return(new SlackMessageResponse($"Hello to you, {slackMessageContext.User.Username}."));
 }
Esempio n. 6
0
 public virtual SlackMessageResponse GetResponse(SlackMessageContext slackMessageContext)
 {
     return(null);
 }
Esempio n. 7
0
 public virtual bool IsHandle(SlackMessageContext slackMessageContext)
 {
     return(false);
 }
Esempio n. 8
0
 public override SlackMessageResponse GetResponse(SlackMessageContext slackMessageContext)
 {
     return(new SlackMessageResponse("Pong!"));
 }
 public override SlackMessageResponse GetResponse(SlackMessageContext slackMessageContext)
 {
     return(new SlackMessageResponse($"Yes thank you {slackMessageContext.User.Username}, I am fine."));
 }