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);
}