internal static object Max()

in src/PSRule.Rules.Azure/Data/Template/Functions.cs [614:643]


    internal static object Max(ITemplateContext context, object[] args)
    {
        if (CountArgs(args) == 0)
            throw ArgumentsOutOfRange(nameof(Max), args);

        long? result = null;
        for (var i = 0; i < args.Length; i++)
        {
            if (ExpressionHelpers.TryLong(args[i], out var value))
            {
                result = !result.HasValue || value > result ? value : result;
            }
            // Enumerate array arg
            else if (TryJArray(args[i], out var array))
            {
                for (var j = 0; j < array.Count; j++)
                {
                    if (ExpressionHelpers.TryLong(array[j], out value))
                    {
                        result = !result.HasValue || value > result ? value : result;
                    }
                    else
                        throw ArgumentFormatInvalid(nameof(Max));
                }
            }
            else
                throw ArgumentFormatInvalid(nameof(Max));
        }
        return result;
    }