private static void AddHeadersElement()

in src/Core/Compiling/Policy/ValidateParametersCompiler.cs [72:118]


    private static void AddHeadersElement(ICompilationContext context, InitializerValue headersValue,
        XElement parentElement)
    {
        if (!headersValue.TryGetValues<ValidateHeaderParameters>(out var headerParams))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.PolicyArgumentIsNotOfRequiredType,
                headersValue.Node.GetLocation(),
                "validate-parameters.headers",
                nameof(ValidateHeaderParameters)
            ));
            return;
        }

        XElement headersElement = new("headers");

        if (!headersElement.AddAttribute(headerParams, nameof(ValidateHeaderParameters.SpecifiedParameterAction),
                "specified-parameter-action"))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                headersValue.Node.GetLocation(),
                "validate-parameters.headers",
                nameof(ValidateHeaderParameters.SpecifiedParameterAction)
            ));
            return;
        }

        if (!headersElement.AddAttribute(headerParams, nameof(ValidateHeaderParameters.UnspecifiedParameterAction),
                "unspecified-parameter-action"))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                headersValue.Node.GetLocation(),
                "validate-parameters.headers",
                nameof(ValidateHeaderParameters.UnspecifiedParameterAction)
            ));
            return;
        }

        if (headerParams.TryGetValue(nameof(ValidateHeaderParameters.Parameters), out var parametersValue))
        {
            AddParameters(context, parametersValue, headersElement, "validate-parameters.headers");
        }

        parentElement.Add(headersElement);
    }