public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            var errorSummaryContext = new ErrorSummaryContext();

            using (context.SetScopedContextItem(typeof(ErrorSummaryContext), errorSummaryContext))
            {
                await output.GetChildContentAsync();
            }

            if (errorSummaryContext.Title == null &&
                errorSummaryContext.Description == null &&
                errorSummaryContext.Items.Count == 0)
            {
                output.SuppressOutput();
                return;
            }

            var tagBuilder = _htmlGenerator.GenerateErrorSummary(
                DisableAutoFocus,
                errorSummaryContext.Title?.Content ?? new HtmlString(ComponentGenerator.ErrorSummaryDefaultTitle),
                errorSummaryContext.Title?.Attributes,
                errorSummaryContext.Description?.Content,
                errorSummaryContext.Description?.Attributes,
                output.Attributes.ToAttributeDictionary(),
                errorSummaryContext.Items);

            output.TagName = tagBuilder.TagName;
            output.TagMode = TagMode.StartTagAndEndTag;

            output.Attributes.Clear();
            output.MergeAttributes(tagBuilder);
            output.Content.SetHtmlContent(tagBuilder.InnerHtml);
        }
Exemple #2
0
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            var errorSummaryContext = new ErrorSummaryContext();

            using (context.SetScopedContextItem(typeof(ErrorSummaryContext), errorSummaryContext))
            {
                await output.GetChildContentAsync();
            }

            if (errorSummaryContext.Title == null)
            {
                throw new InvalidOperationException("Missing <govuk-error-summary-title> element.");
            }

            var tagBuilder = _htmlGenerator.GenerateErrorSummary(
                errorSummaryContext.Title?.content,
                errorSummaryContext.Title?.attributes,
                errorSummaryContext.Description?.content,
                errorSummaryContext.Description?.attributes,
                output.Attributes.ToAttributesDictionary(),
                errorSummaryContext.Items);

            output.TagName = tagBuilder.TagName;
            output.TagMode = TagMode.StartTagAndEndTag;

            output.Attributes.Clear();
            output.MergeAttributes(tagBuilder);
            output.Content.SetHtmlContent(tagBuilder.InnerHtml);
        }