Slack.BlockKit/Classes/Layout/Context.cs

namespace Slack
{
    namespace Layout
    {
        using Slack.Elements;
        public class Context : Block
        {
            private object[] _elements = new object[10];
            private string _block_id;
            private const int block_idTextLength = 255;

            public Context(object[] elements) : base("context")
            {
                this.elements = elements;
            }
            public Context(object[] elements, string block_id) : this(elements)
            {
                this.block_id = block_id;
            }
            public object[] elements
            {
                get => _elements; set
                {
                    foreach (object element in value)
                    {
                        if ((element is Slack.Composition.TextObject) || (element is Slack.Elements.Image))
                        {
                            _elements = value;
                        }
                        else
                        {
                            throw new System.Exception($"Context Block elements can only be Image Elements or Text Objects.");
                        }
                    }
                }
            }
            public string block_id
            {
                get => _block_id; set
                {
                    if (value.Length > block_idTextLength)
                    {
                        throw new System.Exception($"Divider block_id must be less than {block_idTextLength} characters");
                    }
                    _block_id = value;
                }
            }
        }
    }
}