Beispiel #1
0
 internal RangeCriteria(IRange range, RangePolicy policy)
 {
     if (range.LowerSpecified)
     {
         _lower = new CompareCriteria(range.GetLowerBound(policy), ComparisonOperator.GreaterThanOrEqual);
     }
     if (range.UpperSpecified)
     {
         _upper = new CompareCriteria(range.GetUpperBound(policy), ComparisonOperator.LessThanOrEqual);
     }
 }
Beispiel #2
0
        public static RangeCriteria Between <T>(T?lower, T?upper, RangePolicy policy = RangePolicy.Fill)
            where T : struct, IComparable
        {
            if (lower != null && upper != null)
            {
                if (lower.Value.CompareTo(upper.Value) > 0)
                {
                    T?temp = upper;

                    upper = lower;
                    lower = temp;
                }
            }

            return(new RangeCriteria(new ValueRange <T>(lower, upper), policy));
        }
Beispiel #3
0
 IComparable IRange.GetUpperBound(RangePolicy policy)
 {
     if (_upper != null)
     {
         if (policy == RangePolicy.Fill)
         {
             return(_upper.Value.Date.AddDays(1).AddSeconds(-1));
         }
         else
         {
             return(_upper);
         }
     }
     else
     {
         return(null);
     }
 }
Beispiel #4
0
 IComparable IRange.GetLowerBound(RangePolicy policy)
 {
     if (_lower != null)
     {
         if (policy == RangePolicy.Fill)
         {
             return(_lower.Value.Date);
         }
         else
         {
             return(_lower.Value);
         }
     }
     else
     {
         return(null);
     }
 }
Beispiel #5
0
 public RangePolicyAttribute(RangePolicy policy)
 {
     Policy = policy;
 }
Beispiel #6
0
 IComparable IRange.GetLowerBound(RangePolicy policy) => _lower;
Beispiel #7
0
 IComparable IRange.GetUpperBound(RangePolicy policy) => _upper;
Beispiel #8
0
 public static RangeCriteria Between(IRange range, RangePolicy policy)
 {
     return(new RangeCriteria(range, policy));
 }