diff --git a/SlackNet/Blocks/ConversationFilter.cs b/SlackNet/Blocks/ConversationFilter.cs new file mode 100644 index 0000000..384094b --- /dev/null +++ b/SlackNet/Blocks/ConversationFilter.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; + +namespace SlackNet.Blocks +{ + /// + /// Provides a way to filter the list of options in a or . + /// + public class ConversationFilter + { + /// + /// Indicates which type of conversations should be included in the list. + /// When this field is provided, any conversations that do not match will be excluded. + /// + [IgnoreIfEmpty] + public IList Include { get; set; } = new List(); + + /// + /// Indicates whether to exclude external shared channels from conversation lists. + /// + public bool ExcludeExternalSharedChannels { get; set; } + + /// + /// Indicates whether to exclude bot users from conversation lists. + /// + public bool ExcludeBotUsers { get; set; } + } + + public enum ConversationTypeFilter + { + Public, + Private, + Mpim, + Im + } +} \ No newline at end of file diff --git a/SlackNet/Blocks/ConversationMultiSelectMenu.cs b/SlackNet/Blocks/ConversationMultiSelectMenu.cs index 4406ded..f9e8e35 100644 --- a/SlackNet/Blocks/ConversationMultiSelectMenu.cs +++ b/SlackNet/Blocks/ConversationMultiSelectMenu.cs @@ -19,6 +19,11 @@ public ConversationMultiSelectMenu() : base("multi_conversations_select") { } /// Specifies the maximum number of items that can be selected in the menu. Minimum number is 1. /// public int? MaxSelectedItems { get; set; } + + /// + /// A object that reduces the list of available conversations using the specified criteria. + /// + public ConversationFilter Filter { get; set; } } [SlackType("multi_conversations_select")] diff --git a/SlackNet/Blocks/ConversationSelectMenu.cs b/SlackNet/Blocks/ConversationSelectMenu.cs index 570554f..93cac76 100644 --- a/SlackNet/Blocks/ConversationSelectMenu.cs +++ b/SlackNet/Blocks/ConversationSelectMenu.cs @@ -12,6 +12,11 @@ public ConversationSelectMenu() : base("conversations_select") { } /// The ID of any valid conversation to be pre-selected when the menu loads. /// public string InitialConversation { get; set; } + + /// + /// A object that reduces the list of available conversations using the specified criteria. + /// + public ConversationFilter Filter { get; set; } } [SlackType("conversations_select")]