public void CloseFieldset(CheckboxesFieldsetContext fieldsetContext)
        {
            if (!_fieldsetIsOpen)
            {
                throw new InvalidOperationException("Fieldset has not been opened.");
            }

            _fieldsetIsOpen = false;
            Fieldset        = fieldsetContext;
        }
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            var checkboxesContext = context.GetContextItem <CheckboxesContext>();

            checkboxesContext.OpenFieldset();

            var fieldsetContext = new CheckboxesFieldsetContext(output.Attributes.ToAttributeDictionary());

            using (context.SetScopedContextItem(fieldsetContext))
            {
                await output.GetChildContentAsync();
            }

            fieldsetContext.ThrowIfNotComplete();
            checkboxesContext.CloseFieldset(fieldsetContext);

            output.SuppressOutput();
        }
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            var checkboxesContext = (CheckboxesContext)context.Items[typeof(CheckboxesContext)];

            var fieldsetContext = new CheckboxesFieldsetContext();

            using (context.SetScopedContextItem(typeof(CheckboxesFieldsetContext), fieldsetContext))
            {
                await output.GetChildContentAsync();
            }

            checkboxesContext.SetFieldset(new CheckboxesFieldset()
            {
                Attributes       = output.Attributes.ToAttributesDictionary(),
                IsPageHeading    = IsPageHeading,
                LegendContent    = fieldsetContext.Legend?.content,
                LegendAttributes = fieldsetContext.Legend?.attributes
            });

            output.SuppressOutput();
        }