private static void HandleHeaders()

in src/Core/Compiling/Policy/ValidateHeadersCompiler.cs [61:101]


    private static void HandleHeaders(ICompilationContext context, InitializerValue headerValues, XElement element)
    {
        foreach (var headerValue in headerValues.UnnamedValues ?? [])
        {
            if (!headerValue.TryGetValues<ValidateHeader>(out var validateHeaderValues))
            {
                context.Report(Diagnostic.Create(
                    CompilationErrors.PolicyArgumentIsNotOfRequiredType,
                    headerValue.Node.GetLocation(),
                    "validate-headers.header",
                    nameof(ValidateHeader)
                ));
                continue;
            }

            XElement header = new("header");
            if (!header.AddAttribute(validateHeaderValues, nameof(ValidateHeader.Name), "name"))
            {
                context.Report(Diagnostic.Create(
                    CompilationErrors.RequiredParameterNotDefined,
                    headerValue.Node.GetLocation(),
                    "validate-headers.header",
                    nameof(ValidateHeader.Name)
                ));
                continue;
            }

            if (!header.AddAttribute(validateHeaderValues, nameof(ValidateHeader.Action), "action"))
            {
                context.Report(Diagnostic.Create(
                    CompilationErrors.RequiredParameterNotDefined,
                    headerValue.Node.GetLocation(),
                    "validate-headers.header",
                    nameof(ValidateHeader.Action)
                ));
                continue;
            }

            element.Add(header);
        }
    }