Exemplo n.º 1
0
        public override bool IsMatch(JToken t)
        {
            var pathResult = JPath.Evaluate(Path, t, false);

            foreach (var r in pathResult)
            {
                var v = r as JValue;
                switch (Operator)
                {
                case QueryOperator.Equals:
                    if (v != null && v.Equals(Value))
                    {
                        return(true);
                    }
                    break;

                case QueryOperator.NotEquals:
                    if (v != null && !v.Equals(Value))
                    {
                        return(true);
                    }
                    break;

                case QueryOperator.GreaterThan:
                    if (v != null && v.CompareTo(Value) > 0)
                    {
                        return(true);
                    }
                    break;

                case QueryOperator.GreaterThanOrEquals:
                    if (v != null && v.CompareTo(Value) >= 0)
                    {
                        return(true);
                    }
                    break;

                case QueryOperator.LessThan:
                    if (v != null && v.CompareTo(Value) < 0)
                    {
                        return(true);
                    }
                    break;

                case QueryOperator.LessThanOrEquals:
                    if (v != null && v.CompareTo(Value) <= 0)
                    {
                        return(true);
                    }
                    break;

                case QueryOperator.Exists:
                    return(true);

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(false);
        }