public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            var accordionContext = context.GetContextItem <AccordionContext>();

            var itemContext = new AccordionItemContext();

            TagHelperContent childContent;

            using (context.SetScopedContextItem(itemContext))
            {
                childContent = await output.GetChildContentAsync();
            }

            itemContext.ThrowIfIncomplete();

            accordionContext.AddItem(new AccordionItem()
            {
                Expanded          = Expanded,
                HeadingContent    = itemContext.Heading !.Value.Content,
                HeadingAttributes = itemContext.Heading.Value.Attributes,
                SummaryContent    = itemContext.Summary?.Content,
                SummaryAttributes = itemContext.Summary?.Attributes,
                Content           = childContent.Snapshot(),
                Attributes        = output.Attributes.ToAttributeDictionary()
            });
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            var accordionContext = (AccordionContext)context.Items[typeof(AccordionContext)];

            var itemContext = new AccordionItemContext();

            TagHelperContent childContent;

            using (context.SetScopedContextItem(typeof(AccordionItemContext), itemContext))
            {
                childContent = await output.GetChildContentAsync();
            }

            if (itemContext.Heading == null)
            {
                throw new InvalidOperationException("Missing <govuk-accordion-item-heading> element.");
            }

            accordionContext.AddItem(new AccordionItem()
            {
                Attributes        = output.Attributes.ToAttributesDictionary(),
                Content           = childContent.Snapshot(),
                IsExpanded        = IsExpanded,
                HeadingContent    = itemContext.Heading.Value.content,
                HeadingAttributes = itemContext.Heading.Value.attributes,
                HeadingLevel      = itemContext.Heading.Value.level,
                SummaryContent    = itemContext.Summary?.content,
                SummaryAttributes = itemContext.Summary?.attributes
            });

            output.SuppressOutput();
        }