/// <summary> /// Creates an activity based on the slack event payload. /// </summary> /// <param name="slackPayload">The payload of the slack event.</param> /// <returns>An activity containing the event data.</returns> public static Activity PayloadToActivity(SlackPayload slackPayload) { if (slackPayload == null) { throw new ArgumentNullException(nameof(slackPayload)); } var activity = new Activity() { Timestamp = default,
/// <summary> /// Creates an activity based on the slack event payload. /// </summary> /// <param name="slackPayload">The payload of the slack event.</param> /// <returns>An activity containing the event data.</returns> public static Activity PayloadToActivity(SlackPayload slackPayload) { if (slackPayload == null) { throw new ArgumentNullException(nameof(slackPayload)); } var activity = new Activity() { Timestamp = default(DateTime), ChannelId = "slack", Conversation = new ConversationAccount() { Id = slackPayload.Channel.id, }, From = new ChannelAccount() { Id = slackPayload.Message?.BotId ?? slackPayload.User.id, }, Recipient = new ChannelAccount() { Id = null, }, ChannelData = slackPayload, Text = null, Type = ActivityTypes.Event, }; if (slackPayload.ThreadTs != null) { activity.Conversation.Properties["thread_ts"] = slackPayload.ThreadTs; } if (slackPayload.Actions != null && (slackPayload.Type == "block_actions" || slackPayload.Type == "interactive_message")) { activity.Type = ActivityTypes.Message; activity.Text = slackPayload.Actions[0].Value; } return(activity); }