예제 #1
0
        private static void CreateRangeDescriptor <T>(OperatorType operatorType,
                                                      DateRangeQueryDescriptor <T> descriptor,
                                                      DateFilterValue dateFilterValue)
            where T : class
        {
            switch (operatorType)
            {
            case OperatorType.Equal:
                descriptor.GreaterThanOrEquals(dateFilterValue.Value);
                descriptor.LessThanOrEquals(dateFilterValue.Value.AddHours(24));
                break;

            case OperatorType.GreaterThan:
                descriptor.GreaterThan(dateFilterValue.Value);
                break;

            case OperatorType.GreaterThanOrEqual:
                descriptor.GreaterThanOrEquals(dateFilterValue.Value);
                break;

            case OperatorType.LessThan:
                descriptor.LessThan(dateFilterValue.Value);
                break;

            case OperatorType.LessThanOrEquals:
                descriptor.LessThanOrEquals(dateFilterValue.Value.AddHours(24));
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
예제 #2
0
        public static DateRangeQueryDescriptor <T> AddDateQueryDescriptor <T>(this DateRangeQueryDescriptor <T> drqd, Direction direction, string timestamp) where T : class
        {
            switch (direction)
            {
            case Direction.Gte:
                return(drqd.GreaterThanOrEquals(timestamp));

            case Direction.Lte:
                return(drqd.LessThanOrEquals(timestamp));

            default:
                return(drqd);
            }
        }
예제 #3
0
 public static DateRangeQueryDescriptor <T> RangeOnDate <T>(this DateRangeQueryDescriptor <T> filterDescriptor, ExpressionType type, DateTime value) where T : class
 {
     if (type == ExpressionType.LessThan)
     {
         return(filterDescriptor.LessThan(value));
     }
     if (type == ExpressionType.GreaterThan)
     {
         return(filterDescriptor.GreaterThan(value));
     }
     if (type == ExpressionType.LessThanOrEqual)
     {
         return(filterDescriptor.LessThanOrEquals(value));
     }
     if (type == ExpressionType.GreaterThanOrEqual)
     {
         return(filterDescriptor.GreaterThanOrEquals(value));
     }
     throw new NotImplementedException();
 }
 public static DateRangeQueryDescriptor <T> LessThanWithOption <T>(this DateRangeQueryDescriptor <T> q, DateMath to, bool includeEnd)
     where T : class
 {
     return(includeEnd ? q.LessThanOrEquals(to) : q.LessThan(to));
 }