private static String getLayoutCache(int appId, User objOwner)
        {
            MvcContext ctx     = MockContext.GetOne(objOwner, typeof(BlogApp), appId);
            String     content = ControllerRunner.Run(ctx, new wojilu.Web.Controller.Blog.LayoutController().Layout);

            return(content);
        }
Esempio n. 2
0
        private static String getLayoutCache(int appId, User objOwner)
        {
            MvcContext ctx     = MockContext.GetOne(objOwner, appId);
            String     content = ControllerRunner.Run("wojilu.Web.Controller.Blog.LayoutController", "Layout", ctx);

            return(content);
        }
Esempio n. 3
0
        private static string getMainCache(int appId)
        {
            MvcContext ctx     = MockContext.GetOne(Site.Instance, appId);
            String     content = ControllerRunner.Run("wojilu.Web.Controller.Blog.MainController", "Index", ctx);

            return(content);
        }
        private static string getHomeCache(int appId, IMember owner)
        {
            MvcContext ctx     = MockContext.GetOne(owner, appId);
            String     content = ControllerRunner.Run(new wojilu.Web.Controller.Content.ContentController().Index, ctx);

            return(content);
        }
Esempio n. 5
0
        private static string getHomeCache(int appId, User owner)
        {
            MvcContext ctx     = MockContext.GetOne(owner, typeof(BlogApp), appId);
            String     content = ControllerRunner.Run(ctx, new wojilu.Web.Controller.Blog.BlogController().Index);

            return(content);
        }
Esempio n. 6
0
        /// <summary>
        /// 运行其他 action,并将运行结果作为当前 action 的内容
        /// </summary>
        /// <param name="action"></param>
        /// <param name="id"></param>
        protected void run(aActionWithId action, int id)
        {
            if (ctx.utils.isAjax)
            {
                if (ctx.HasErrors)
                {
                    echoError();
                }
                else
                {
                    echoAjaxOk();
                }
                return;
            }

            if (isSameType(action.Method))
            {
                setView(action.Method);
                action(id);
            }
            else
            {
                //ControllerBase mycontroller = ControllerFactory.FindController( action.Method.DeclaringType, ctx );
                //mycontroller.view( action.Method.Name );
                //action.Method.Invoke( mycontroller, new object[] { id } );
                //actionContent( mycontroller.utils.getActionResult() );

                content(ControllerRunner.Run(ctx, action, id));
            }
        }
        private static string getIndexCache(IMember owner, int appId, String viewName)
        {
            MvcContext ctx     = MockContext.GetOne(owner, typeof(ForumApp), appId);
            String     content = ControllerRunner.Run(ctx, typeof(wojilu.Web.Controller.Forum.RecentController).FullName, viewName);

            return(content);
        }
Esempio n. 8
0
        private static string getIndexCache(int appId, IMember owner)
        {
            MvcContext ctx     = MockContext.GetOne(owner, typeof(ContentApp), appId);
            String     content = ControllerRunner.Run(ctx, new wojilu.Web.Controller.Content.ContentController().Index);

            return(content);
        }
Esempio n. 9
0
        private static string getHomeCache(int appId, User owner)
        {
            MvcContext ctx     = MockContext.GetOne(owner, appId);
            String     content = ControllerRunner.Run("wojilu.Web.Controller.Blog.BlogController", "Index", ctx);

            return(content);
        }
Esempio n. 10
0
        /// <summary>
        /// 运行某 action
        /// </summary>
        /// <param name="actionName"></param>
        public void runAction(String actionName)
        {
            ControllerRunner.runAction(controller, actionName);

            //MethodInfo method = getMethod( actionName );
            //if (method == null) {
            //    throw new Exception( "action " + wojilu.lang.get( "exNotFound" ) );
            //}

            //ParameterInfo[] parameters = getParameters( method );
            //if (parameters.Length == 1) {
            //    if (parameters[0].ParameterType == typeof( String )) {
            //        method.Invoke( controller, new object[] { HttpUtility.UrlDecode( ctx.route.query ) } );
            //    }
            //    else {
            //        method.Invoke( controller, new object[] { ctx.route.id } );
            //    }
            //}
            //else if (parameters.Length == 0) {
            //    method.Invoke( controller, null );
            //}
            //else {
            //    throw new Exception( "action " + wojilu.lang.get( "exNotFound" ) );
            //}
        }
Esempio n. 11
0
        /// <summary>
        /// 获取某 action 的内容
        /// </summary>
        /// <param name="action"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public String loadHtml(aActionWithId action, int id)
        {
            String result;

            if (isSameType(action.Method))
            {
                String   actionName   = action.Method.Name;
                Template originalView = utils.getCurrentView();

                setView(action.Method);

                action(id);

                Template resultView = utils.getCurrentView();
                utils.setCurrentView(originalView);
                result = resultView.ToString();
            }
            else
            {
                //ControllerBase targetController = action.Target as ControllerBase;
                //ControllerFactory.InjectController( targetController, ctx );
                //targetController.view( action.Method.Name );
                //action( id );
                //result = targetController.utils.getCurrentView().ToString();

                result = ControllerRunner.Run(ctx, action, id);
            }

            return(result);
        }
Esempio n. 12
0
        private static string getIndexCache(IMember owner, int appId)
        {
            MvcContext ctx     = MockContext.GetOne(owner, typeof(ForumApp), appId);
            String     content = ControllerRunner.Run(ctx, new wojilu.Web.Controller.Forum.RecentController().Post);

            return(content);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="AreaControllerRenderer"/> class.
 /// </summary>
 /// <param name="controllerInfo">
 /// The controller info.
 /// </param>
 /// <param name="controllerRunner">
 /// The controller runner
 /// </param>
 public AreaControllerRenderer(
     ControllerInfo controllerInfo, 
     ControllerRunner controllerRunner)
 {
     this.controllerInfo = controllerInfo;
     this.controllerRunner = controllerRunner;
 }
Esempio n. 14
0
        private static string getMainCache(int appId)
        {
            MvcContext ctx     = MockContext.GetOne(Site.Instance, typeof(BlogApp), appId);
            String     content = ControllerRunner.Run(ctx, new wojilu.Web.Controller.Blog.MainController().Index);

            return(content);
        }
Esempio n. 15
0
        private static string getLayoutCache(IMember owner)
        {
            MvcContext ctx     = MockContext.GetOne(owner);
            String     content = ControllerRunner.Run(ctx, new wojilu.Web.Controller.LayoutController().Layout);

            return(content);
        }
Esempio n. 16
0
        private static string getIndexCache(IMember owner, int appId, int boardId, int pageId)
        {
            MvcContext ctx = MockContext.GetOne(owner, typeof(ForumApp), appId);

            ctx.route.setPage(pageId);
            String content = ControllerRunner.Run(ctx, new wojilu.Web.Controller.Forum.BoardController().Show, boardId);

            return(content);
        }
Esempio n. 17
0
        public override void Process(ProcessContext context)
        {
            MvcEventPublisher.Instance.BeginAddLayout(context.ctx);
            if (context.ctx.utils.isSkipCurrentProcessor())
            {
                return;
            }

            MvcContext     ctx        = context.ctx;
            ControllerBase controller = context.getController();

            if (controller.utils.isHided(controller.GetType()))
            {
                return;
            }

            int   intNoLayout = ctx.utils.getNoLayout();
            IList paths       = ctx.utils.getLayoutPath();

            if (intNoLayout >= paths.Count + 1)
            {
                return;
            }

            String actionContent = context.getContent();


            //检查缓存
            CacheInfo ci           = CacheInfo.InitLayout(ctx);
            Object    cacheContent = ci.CheckCache();

            if (cacheContent != null)
            {
                logger.Info("load from layoutCache=" + ci.CacheKey);
                context.setContent(HtmlCombiner.combinePage(cacheContent.ToString(), actionContent));
                return;
            }

            String layoutContent = ControllerRunner.RunLayout(ctx);

            // 加入缓存
            if (ci.IsActionCache)
            {
                ci.AddContentToCache(layoutContent);
            }

            if (ctx.utils.isEnd())
            {
                context.endMsgByText(layoutContent);
            }
            else
            {
                context.setContent(HtmlCombiner.combinePage(layoutContent, actionContent));
            }
        }
Esempio n. 18
0
        public override async Task ProcessAsync(RenderRenderingArgs args)
        {
            var runner = new ControllerRunner(args.Rendering.Controller, args.Rendering.Action, args.HttpContext, args.RouteData);

            using (var writer = new StringWriter())
            {
                await runner.Execute(writer);

                args.CacheableOutput = writer.ToString();
                args.Output.Write(args.CacheableOutput);
            }
        }
Esempio n. 19
0
        /// <summary>
        /// 运行其他 action,并将运行结果作为当前 action 的内容
        /// </summary>
        /// <param name="action"></param>
        /// <param name="id"></param>
        protected void run(aActionWithId action, long id)
        {
            if (ctx.utils.isAjax)
            {
                if (ctx.HasErrors)
                {
                    echoError();
                }
                else
                {
                    echoAjaxOk();
                }
                return;
            }

            content(ControllerRunner.Run(this, action, id));
        }
Esempio n. 20
0
        /// <summary>
        /// 运行其他 action,并将运行结果作为当前 action 的内容
        /// </summary>
        /// <param name="controllerType">被运行的 action 所属的 controller 类型</param>
        /// <param name="actionName">action 名称</param>
        /// <param name="args">需要的参数</param>
        protected void run(String controllerFullTypeName, String actionName, params object[] args)
        {
            Type controllerType = ObjectContext.Instance.TypeList[controllerFullTypeName];

            if (controllerType == base.GetType())
            {
                view(actionName);
                MethodInfo method = base.GetType().GetMethod(actionName);
                if (method == null)
                {
                    throw new Exception("action " + wojilu.lang.get("exNotFound"));
                }
                else
                {
                    method.Invoke(this, args);
                }
            }
            else
            {
                actionContent(ControllerRunner.Run(ctx, controllerFullTypeName, actionName, args));
            }
        }
 public ControllerRunnerWrapper(ControllerRunner controllerRunner)
 {
     _controllerRunner = controllerRunner;
 }
Esempio n. 22
0
 /// <summary>
 /// 获取某 action 的内容
 /// </summary>
 /// <param name="controller"></param>
 /// <param name="action"></param>
 /// <param name="id"></param>
 /// <returns></returns>
 public string loadHtml(string controller, string action, long id)
 {
     return(ControllerRunner.Run(ctx, controller, action, id));
 }
 public ControllerRunnerWrapper(ControllerRunner controllerRunner)
 {
     _controllerRunner = controllerRunner;
 }
Esempio n. 24
0
 /// <summary>
 /// 获取某 action 的内容
 /// </summary>
 /// <param name="controller"></param>
 /// <param name="action"></param>
 /// <returns></returns>
 public String loadHtml(String controller, String action)
 {
     return(ControllerRunner.Run(ctx, controller, action));
 }
Esempio n. 25
0
 /// <summary>
 /// 运行某 action
 /// </summary>
 /// <param name="actionName"></param>
 public void runAction(String actionName)
 {
     ControllerRunner.runAction(controller, actionName);
 }
Esempio n. 26
0
 // TODO 在被load的action中,使用showEnd无效
 /// <summary>
 /// 获取某 action 的内容
 /// </summary>
 /// <param name="action"></param>
 /// <returns></returns>
 public String loadHtml(aAction action)
 {
     return(ControllerRunner.Run(this, action));
 }
Esempio n. 27
0
 /// <summary>
 /// 获取某 action 的内容
 /// </summary>
 /// <param name="action"></param>
 /// <param name="id"></param>
 /// <returns></returns>
 public string loadHtml(aActionWithId action, long id)
 {
     return(ControllerRunner.Run(this, action, id));
 }