public static SlackMessageBuilder MentionBlock(this SlackMessageBuilder builder, SlackLogMention mention)
        {
            var mentions = new List <string>();

            if (mention.Channel.HasValue)
            {
                mentions.Add(SlackMessageTextHelper.ChannelMention(mention.Channel.Value));
            }

            if (mention.Users?.Any() == true)
            {
                mentions.AddRange(mention.Users.Select(SlackMessageTextHelper.UserMention));
            }

            if (mention.UserGroups?.Any() == true)
            {
                mentions.AddRange(mention.UserGroups.Select(SlackMessageTextHelper.UserGroupMention));
            }

            if (mentions.Any())
            {
                builder.MessageBlock(string.Join(", ", mentions));
            }

            return(builder);
        }
예제 #2
0
        private async Task AttachExceptionAsync(SlackClient slackClient, SlackMessageBuilder threadMessageBuilder, Exception exception)
        {
            if (_logOptions.SendExceptionAsFile)
            {
                var exceptionType      = exception.GetType().Name;
                var fileObjectResponse = await slackClient.Files.UploadContentAsync(
                    exception.ToString(),
                    title : exceptionType,
                    filename : $"{exceptionType}.cs");

                threadMessageBuilder.Text(fileObjectResponse.File.Permalink.ToString());
            }
            else
            {
                threadMessageBuilder
                .MessageBlock(SlackMessageTextHelper.CodeBlock(exception.ToString()));
            }
        }