예제 #1
0
 public SkipTakeExpression(ConstantExpression skipTake, DirectoryExpressionType nodeType) : base(skipTake, nodeType)
 {
     if (nodeType != DirectoryExpressionType.Take && nodeType != DirectoryExpressionType.Skip)
     {
         throw new Exception();
     }
 }
        private SkipTakeExpression CreateSkipTake(ConstantExpression expression, DirectoryExpressionType expressionType)
        {
            if (expression.Type == typeof(int))
            {
                return(new SkipTakeExpression(expression, expressionType));
            }

            return(null);
        }
        private SkipTakeExpression VisitMethod(MethodCallExpression method, DirectoryExpressionType expressionType)
        {
            var node = VisitMethodCall(method);

            if (node.NodeType.Is(expressionType))
            {
                return(node as SkipTakeExpression);
            }

            throw new Exception();
        }
 protected DirectoryExpressionBase(Expression expression, DirectoryExpressionType type)
 {
     _expression     = expression;
     _expressionType = type;
 }
예제 #5
0
 internal static bool Is(this ExpressionType type, DirectoryExpressionType directoryType)
 {
     return(type == (ExpressionType)directoryType);
 }
예제 #6
0
 protected DirectoryExpressionBase(Expression expression, DirectoryExpressionType type) : base((ExpressionType)type, expression.Type)
 {
     _expression = expression;
 }
예제 #7
0
 public DirectoryExpression(Expression expression, DirectoryExpressionType type) : base(expression, type)
 {
     _whereClause = new List <WhereExpression>();
 }