コード例 #1
0
ファイル: RangeCriteria.cs プロジェクト: garyhjr/ElasticLINQ
        public RangeSpecificationCriteria(RangeComparison comparison, object value)
        {
            Argument.EnsureIsDefinedEnum("comparison", comparison);
            Argument.EnsureNotNull("value", value);

            this.comparison = comparison;
            this.value      = value;
        }
コード例 #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RangeSpecificationCriteria"/> class.
        /// </summary>
        /// <param name="comparison">Type of comparison for this range specification.</param>
        /// <param name="value">Constant value that this range specification tests against.</param>
        public RangeSpecificationCriteria(RangeComparison comparison, object value)
        {
            Argument.EnsureIsDefinedEnum(nameof(comparison), comparison);
            Argument.EnsureNotNull(nameof(value), value);

            Comparison = comparison;
            Value      = value;
        }
コード例 #3
0
        public RangeSpecificationCriteria(RangeComparison comparison, object value)
        {
            Argument.EnsureIsDefinedEnum("comparison", comparison);
            Argument.EnsureNotNull("value", value);

            this.comparison = comparison;
            this.value = value;
        }
コード例 #4
0
        Expression VisitRange(RangeComparison rangeComparison, Expression left, Expression right)
        {
            var inverted = left is ConstantExpression;
            var cm       = ConstantMemberPair.Create(left, right);

            if (cm == null)
            {
                throw new NotSupportedException("A {0} must test a constant against a member");
            }

            if (inverted)
            {
                rangeComparison = invertedRangeComparison[(int)rangeComparison];
            }

            var field = Mapping.GetFieldName(SourceType, cm.MemberExpression);

            return(new CriteriaExpression(new RangeCriteria(field, cm.MemberExpression.Member, rangeComparison, cm.ConstantExpression.Value)));
        }
コード例 #5
0
ファイル: Range.cs プロジェクト: omesy/Bridge
 /// <summary>
 /// Compares the boundary points of the Range with another one.
 /// </summary>
 /// <param name="how">A constant describing the comparison method</param>
 /// <param name="sourceRange">A Range to compare boundary points with the range.</param>
 /// <returns>A number, -1, 0, or 1, indicating whether the corresponding boundary-point of the Range is respectively before, equal to, or after the corresponding boundary-point of sourceRange.</returns>
 public virtual int CompareBoundaryPoints(RangeComparison how, Range sourceRange)
 {
     return(0);
 }
コード例 #6
0
ファイル: RangeCriteria.cs プロジェクト: garyhjr/ElasticLINQ
 public RangeCriteria(string field, MemberInfo member, RangeComparison comparison, object value)
     : this(field, member, new[] { new RangeSpecificationCriteria(comparison, value) })
 {
 }
コード例 #7
0
ファイル: RangeCriteria.cs プロジェクト: jarlrasm/ElasticLINQ
 public RangeCriteria(string field, MemberInfo member, RangeComparison comparison, object value)
     : this(field, member, new[] { new RangeSpecificationCriteria(comparison, value) }) { }
コード例 #8
0
 /// <summary>
 /// Starting point for a range comparison, example: <c>0 &lt;= Cmp(x) &lt; 10</c>
 /// </summary>
 public static RangeComparison.Initial <A> Cmp <A>(A value) where A : IComparable <A> =>
 RangeComparison.New(value);
コード例 #9
0
        internal void CombineSameFieldRangeNotCombineIntoSingleRangeCriteriaIfConflictingComparisons(RangeComparison leftRangeComparison, RangeComparison rightRangeComparison)
        {
            var leftRangeCriteria = new RangeCriteria("a", memberInfo, leftRangeComparison, "leftValue");
            var rightRangeCriteria = new RangeCriteria("a", memberInfo, rightRangeComparison, "rightValue");

            var criteria = AndCriteria.Combine(leftRangeCriteria, rightRangeCriteria);

            var rangeCriteria = Assert.IsType<AndCriteria>(criteria).Criteria.OfType<RangeCriteria>().ToList();
            Assert.Equal(2, rangeCriteria.Count());
            Assert.All(rangeCriteria, c => Assert.True(Assert.IsType<RangeCriteria>(c).Member == memberInfo));

            Assert.Single(rangeCriteria, leftRangeCriteria);
            Assert.Single(rangeCriteria, rightRangeCriteria);
        }
コード例 #10
0
ファイル: Range.cs プロジェクト: Cestbienmoi/Bridge
 /// <summary>
 /// Compares the boundary points of the Range with another one.
 /// </summary>
 /// <param name="how">A constant describing the comparison method</param>
 /// <param name="sourceRange">A Range to compare boundary points with the range.</param>
 /// <returns>A number, -1, 0, or 1, indicating whether the corresponding boundary-point of the Range is respectively before, equal to, or after the corresponding boundary-point of sourceRange.</returns>
 public virtual int CompareBoundaryPoints(RangeComparison how, Range sourceRange)
 {
     return 0;
 }
コード例 #11
0
 /// <summary>
 /// Compares the boundary points of the Range with another one.
 /// </summary>
 /// <param name="how">A constant describing the comparison method</param>
 /// <param name="sourceRange">A Range to compare boundary points with the range.</param>
 /// <returns>A number, -1, 0, or 1, indicating whether the corresponding boundary-point of the Range is respectively before, equal to, or after the corresponding boundary-point of sourceRange.</returns>
 public virtual extern int CompareBoundaryPoints(RangeComparison how, Range sourceRange);
コード例 #12
0
        internal void CombineSameFieldRangeNotCombineIntoSingleRangeCriteriaIfConflictingComparisons(RangeComparison leftRangeComparison, RangeComparison rightRangeComparison)
        {
            var leftRangeCriteria  = new RangeCriteria("a", memberInfo, leftRangeComparison, "leftValue");
            var rightRangeCriteria = new RangeCriteria("a", memberInfo, rightRangeComparison, "rightValue");

            var criteria = AndCriteria.Combine(leftRangeCriteria, rightRangeCriteria);

            var rangeCriteria = Assert.IsType <AndCriteria>(criteria).Criteria.OfType <RangeCriteria>().ToList();

            Assert.Equal(2, rangeCriteria.Count());
            Assert.All(rangeCriteria, c => Assert.True(Assert.IsType <RangeCriteria>(c).Member == memberInfo));

            Assert.Single(rangeCriteria, leftRangeCriteria);
            Assert.Single(rangeCriteria, rightRangeCriteria);
        }
コード例 #13
0
ファイル: Range.cs プロジェクト: n9/SaltarelleWeb
 public short CompareBoundaryPoints(RangeComparison how, Range sourceRange)
 {
     return 0;
 }
コード例 #14
0
 public short CompareBoundaryPoints(RangeComparison how, Range sourceRange)
 {
     return(0);
 }
コード例 #15
0
ファイル: Range.cs プロジェクト: TinkerWorX/Bridge
 /// <summary>
 /// Compares the boundary points of the Range with another one.
 /// </summary>
 /// <param name="how">A constant describing the comparison method</param>
 /// <param name="sourceRange">A Range to compare boundary points with the range.</param>
 /// <returns>A number, -1, 0, or 1, indicating whether the corresponding boundary-point of the Range is respectively before, equal to, or after the corresponding boundary-point of sourceRange.</returns>
 public virtual extern int CompareBoundaryPoints(RangeComparison how, Range sourceRange);