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(); }