Ejemplo n.º 1
0
        /// <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,
Ejemplo n.º 2
0
        /// <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);
        }