in src/PSRule.Rules.Azure/Data/Policy/PolicyAssignmentVisitor.cs [1026:1061]
private static void VisitCountExpression(PolicyAssignmentContext context, PolicyDefinition policyDefinition, JObject parent, JObject count)
{
// Remove from parent
parent.RemoveProperty(PROPERTY_COUNT);
if (count.TryGetProperty(PROPERTY_FIELD, out var field))
{
try
{
field = ExpandField(context, TemplateVisitor.ExpandString(context, field));
context.EnterFieldPrefix(field);
parent.Add(PROPERTY_FIELD, field);
if (count.TryObjectProperty(PROPERTY_WHERE, out var where))
{
VisitCondition(context, policyDefinition, where);
if (where.TryArrayProperty(PROPERTY_ALLOF, out var allOf))
{
parent.Add(PROPERTY_ALLOF, allOf);
}
else if (where.TryArrayProperty(PROPERTY_ANYOF, out var anyOf))
{
parent.Add(PROPERTY_ANYOF, anyOf);
}
else
{
parent.Add(PROPERTY_ALLOF, new JArray(where));
}
ConvertQuantifiers(context, parent);
}
}
finally
{
context.ExitFieldPrefix(field);
}
}
}