private static void AddQueryElement()

in src/Core/Compiling/Policy/ValidateParametersCompiler.cs [120:166]


    private static void AddQueryElement(ICompilationContext context, InitializerValue queryValue,
        XElement parentElement)
    {
        if (!queryValue.TryGetValues<ValidateQueryParameters>(out var queryParams))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.PolicyArgumentIsNotOfRequiredType,
                queryValue.Node.GetLocation(),
                "validate-parameters.query",
                nameof(ValidateQueryParameters)
            ));
            return;
        }

        XElement queryElement = new("query");

        if (!queryElement.AddAttribute(queryParams, nameof(ValidateQueryParameters.SpecifiedParameterAction),
                "specified-parameter-action"))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                queryValue.Node.GetLocation(),
                "validate-parameters.query",
                nameof(ValidateQueryParameters.SpecifiedParameterAction)
            ));
            return;
        }

        if (!queryElement.AddAttribute(queryParams, nameof(ValidateQueryParameters.UnspecifiedParameterAction),
                "unspecified-parameter-action"))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                queryValue.Node.GetLocation(),
                "validate-parameters.query",
                nameof(ValidateQueryParameters.UnspecifiedParameterAction)
            ));
            return;
        }

        if (queryParams.TryGetValue(nameof(ValidateQueryParameters.Parameters), out var parametersValue))
        {
            AddParameters(context, parametersValue, queryElement, "validate-parameters.query");
        }

        parentElement.Add(queryElement);
    }