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); } } } }
private async Task SendTypingResponse(SlackMessageContext slackMessageContext) { TypingSlackResponse typingSlackResponse = new TypingSlackResponse() { Channel = slackMessageContext.ChannelID, ID = DateTime.Now.Ticks }; await Send(typingSlackResponse); }
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); }
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); }
public override SlackMessageResponse GetResponse(SlackMessageContext slackMessageContext) { return(new SlackMessageResponse($"Hello to you, {slackMessageContext.User.Username}.")); }
public virtual SlackMessageResponse GetResponse(SlackMessageContext slackMessageContext) { return(null); }
public virtual bool IsHandle(SlackMessageContext slackMessageContext) { return(false); }
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.")); }