protected override Expression VisitMethodCall(MethodCallExpression m)
        {
            if (m == _scopeToRewrite)
            {
                var forEachRewriterVisitor = new ForEachRewriter(ScopeLevel, _iterator);
                Expression rewrittenChild = forEachRewriterVisitor.RewriteSubExpression(_htmlBuilder);
                rewrittenChild =
                    new CurrentItemRewriterVisitor(_iterator, forEachRewriterVisitor.LambdaParameter).Rewrite(
                        rewrittenChild);
                return CreateAddElementsOnHtmlElement(m.Object, rewrittenChild);
            }

            return base.VisitMethodCall(m);
        }
        protected override Expression VisitMethodCall(MethodCallExpression m)
        {
            if (m == _scopeToRewrite)
            {
                var        forEachRewriterVisitor = new ForEachRewriter(ScopeLevel, _iterator);
                Expression rewrittenChild         = forEachRewriterVisitor.RewriteSubExpression(_htmlBuilder);
                rewrittenChild =
                    new CurrentItemRewriterVisitor(_iterator, forEachRewriterVisitor.LambdaParameter).Rewrite(
                        rewrittenChild);
                return(CreateAddElementsOnHtmlElement(m.Object, rewrittenChild));
            }

            return(base.VisitMethodCall(m));
        }
        public Expression<Func<IElement>> RewriteRoot(Expression expr)
        {
            Expression rewritten = Visit(expr);
            if (Iterator != null)
            {
                var foreachrewriter = new ForEachRewriter(_scopeLevel, Iterator);
                rewritten = foreachrewriter.RewriteSubExpression(rewritten);

                if (foreachrewriter.LambdaParameter != null)
                    rewritten =
                        new CurrentItemRewriterVisitor(foreachrewriter.Iterator, foreachrewriter.LambdaParameter).Rewrite(rewritten);
                return (Expression<Func<IElement>>)CreateWrapperElement(rewritten);
            }
            return (Expression<Func<IElement>>)expr;
        }
Example #4
0
        public Expression <Func <IElement> > RewriteRoot(Expression expr)
        {
            Expression rewritten = Visit(expr);

            if (Iterator != null)
            {
                var foreachrewriter = new ForEachRewriter(_scopeLevel, Iterator);
                rewritten = foreachrewriter.RewriteSubExpression(rewritten);

                if (foreachrewriter.LambdaParameter != null)
                {
                    rewritten =
                        new CurrentItemRewriterVisitor(foreachrewriter.Iterator, foreachrewriter.LambdaParameter).Rewrite(rewritten);
                }
                return((Expression <Func <IElement> >)CreateWrapperElement(rewritten));
            }
            return((Expression <Func <IElement> >)expr);
        }