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