private static bool TryParameterType()

in src/PSRule.Rules.Azure/Data/Template/TemplateVisitor.cs [1086:1111]


    private static bool TryParameterType(ITemplateContext context, JObject parameter, out ParameterType? value)
    {
        value = null;
        if (parameter == null)
            throw new ArgumentNullException(nameof(parameter));

        // Try $ref property.
        if (parameter.TryGetProperty(PROPERTY_REF, out var type) &&
            context.TryDefinition(type, out var definition))
        {
            value = new ParameterType(definition.Type, default, type);
        }
        // Try type property.
        else if (parameter.TryTypeProperty(out type) && TypeHelpers.TryTypePrimitive(type, out var typePrimitive))
        {
            value = typePrimitive == TypePrimitive.Array && parameter.TryItemsTypeProperty(out var itemsType) ?
                ParameterType.TryArrayType(type, itemsType, out var arrayType) ?
                    arrayType :
                    default :
                ParameterType.TrySimpleType(type, out var typeSimple) ?
                    typeSimple :
                    default;
        }

        return value != null && value.Value.Type != TypePrimitive.None;
    }