public static Expression Process(Expression expressionTree, INodeTypeProvider nodeTypeProvider)
        {
            ArgumentUtility.CheckNotNull ("expressionTree", expressionTree);
              ArgumentUtility.CheckNotNull ("nodeTypeProvider", nodeTypeProvider);

              var visitor = new SubQueryFindingExpressionTreeVisitor (nodeTypeProvider);
              return visitor.VisitExpression (expressionTree);
        }
        public static Expression Process(Expression expressionTree, INodeTypeProvider nodeTypeProvider)
        {
            ArgumentUtility.CheckNotNull("expressionTree", expressionTree);
            ArgumentUtility.CheckNotNull("nodeTypeProvider", nodeTypeProvider);

            var visitor = new SubQueryFindingExpressionTreeVisitor(nodeTypeProvider);

            return(visitor.VisitExpression(expressionTree));
        }
        public static Expression Process(Expression expressionTree, INodeTypeProvider nodeTypeProvider)
        {
            var visitor = new SubQueryFindingExpressionTreeVisitor(nodeTypeProvider);

            return(visitor.VisitExpression(expressionTree));
        }