private static bool ParametersEqual()

in src/PSRule.Rules.Azure/Data/Policy/PolicyAssignmentVisitor.cs [859:882]


        private static bool ParametersEqual(PolicyAssignmentContext context, IParameterValue paramA, IParameterValue paramB)
        {
            var typeA = paramA.Type;
            var typeB = paramB.Type;
            var valueA = paramA.GetValue(context);
            var valueB = paramB.GetValue(context);

            if (typeA == ParameterType.String && typeB == ParameterType.String)
                return valueA.ToString().Equals(valueB.ToString(), StringComparison.OrdinalIgnoreCase);

            if (typeA == ParameterType.Integer && typeB == ParameterType.Integer)
                return Convert.ToInt64(valueA, Thread.CurrentThread.CurrentCulture) == Convert.ToInt64(valueB, Thread.CurrentThread.CurrentCulture);

            if (typeA == ParameterType.Boolean && typeB == ParameterType.Boolean)
                return Convert.ToBoolean(valueA, Thread.CurrentThread.CurrentCulture) == Convert.ToBoolean(valueB, Thread.CurrentThread.CurrentCulture);

            if (typeA == ParameterType.Array && typeB == ParameterType.Array)
                return JToken.DeepEquals(JArray.FromObject(valueA), JArray.FromObject(valueB));

            if (typeA == ParameterType.Object && typeB == ParameterType.Object)
                return JToken.DeepEquals(JObject.FromObject(valueA), JObject.FromObject(valueB));

            return true;
        }