public void Handle()

in src/Core/Compiling/Policy/ValidateParametersCompiler.cs [18:70]


    public void Handle(ICompilationContext context, InvocationExpressionSyntax node)
    {
        if (!node.TryExtractingConfigParameter<ValidateParametersConfig>(context, "validate-parameters",
                out var values))
        {
            return;
        }

        XElement element = new("validate-parameters");

        if (!element.AddAttribute(values, nameof(ValidateParametersConfig.SpecifiedParameterAction),
                "specified-parameter-action"))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                node.ArgumentList.GetLocation(),
                "validate-parameters",
                nameof(ValidateParametersConfig.SpecifiedParameterAction)
            ));
            return;
        }

        if (!element.AddAttribute(values, nameof(ValidateParametersConfig.UnspecifiedParameterAction),
                "unspecified-parameter-action"))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                node.ArgumentList.GetLocation(),
                "validate-parameters",
                nameof(ValidateParametersConfig.UnspecifiedParameterAction)
            ));
            return;
        }

        element.AddAttribute(values, nameof(ValidateParametersConfig.ErrorsVariableName), "errors-variable-name");

        if (values.TryGetValue(nameof(ValidateParametersConfig.Headers), out var headersValue))
        {
            AddHeadersElement(context, headersValue, element);
        }

        if (values.TryGetValue(nameof(ValidateParametersConfig.Query), out var queryValue))
        {
            AddQueryElement(context, queryValue, element);
        }

        if (values.TryGetValue(nameof(ValidateParametersConfig.Path), out var pathValue))
        {
            AddPathElement(context, pathValue, element);
        }

        context.AddPolicy(element);
    }