public PageRequestHandler(ControllerContext controllerContext, PageRequestFlowAdapter pageRequestFlowAdapter, SiteMappedContext siteMappedContext, PageMappedContext pageMappedContext) { Contract.Requires(siteMappedContext != null); Contract.Requires(pageRequestFlowAdapter != null); this._controllerContext = controllerContext; this._siteMappedContext = siteMappedContext; this._pageRequestFlowAdapter = pageRequestFlowAdapter; this._pageMappedContext = pageMappedContext; }
/// <summary> /// 根据需要创建一个自定义的HttpContext /// </summary> /// <param name="httpContext">The HTTP context.</param> /// <returns></returns> public HttpContextBase RenewHttpContext(HttpContext httpContext, SiteMappedContext siteMappedContext) { Contract.Requires(httpContext != null); foreach (var item in _events) { item.BeginSiteRequest(this, new BeginSiteRequestEventArgs(httpContext, siteMappedContext)); } var newHttpContext = _siteRequestFlow.RenewHttpContext(httpContext, siteMappedContext); return(newHttpContext); }
/// <summary> /// 站点请求结束 /// </summary> /// <param name="httpContext"></param> public void EndSiteRequest(HttpContextBase httpContext, SiteMappedContext siteMappedContext) { Contract.Requires(httpContext != null); Contract.Requires(siteMappedContext != null); foreach (var item in _events) { item.EndSiteRequest(this, new EndSiteRequestEventArgs(httpContext, siteMappedContext)); } _siteRequestFlow.EndSiteRequest(httpContext, siteMappedContext); }
/// <summary> /// Handle the exception /// </summary> /// <param name="httpContext">The HTTP context.</param> /// <param name="site">The site.</param> /// <param name="exception">The exception.</param> public bool Error(ControllerContext controllerContext, SiteMappedContext siteMappedContext, Exception exception) { Contract.Requires(controllerContext != null); Contract.Requires(exception != null); var handled = false; foreach (var item in _events) { var args = new ErrorEventArgs(controllerContext, siteMappedContext, exception); item.Error(this, args); if (args.ExceptionHandled == true) { break; } } return(handled); }
/// <summary> /// 执行Handler /// </summary> /// <param name="controllerContext">The HTTP context.</param> public void ExecuteRequestHandler(ControllerContext controllerContext, SiteMappedContext siteMappedContext, IRequestHandler requestHandler) { Contract.Requires(controllerContext != null); Contract.Requires(siteMappedContext != null); Contract.Requires(requestHandler != null); foreach (var item in _events) { item.PreExecuteRequestHandler(this, new PreExecuteRequestHandlerEventArgs(controllerContext, siteMappedContext, requestHandler)); } _siteRequestFlow.ExecuteRequestHandler(controllerContext, requestHandler, siteMappedContext); foreach (var item in _events) { var args = new PostExecuteRequestHandlerEventArgs(controllerContext, siteMappedContext, requestHandler); item.PostExecuteRequestHandler(this, args); } }
/// <summary> /// 根据需要创建一个自定义的HttpContext /// </summary> /// <param name="controllerContext">The controller context.</param> /// <param name="siteMappedContext">The site.</param> /// <returns></returns> public PageMappedContext MapPage(ControllerContext controllerContext, SiteMappedContext siteMappedContext) { Contract.Requires(controllerContext != null); Contract.Requires(siteMappedContext != null); foreach (var item in _events) { item.PreMapPage(this, new PreMapPageEventArgs(controllerContext, siteMappedContext)); } var mappedContext = _pageRequestFlow.MapPage(controllerContext, siteMappedContext); foreach (var item in _events) { var args = new PostMapPageEventArgs(controllerContext, siteMappedContext, mappedContext); item.PostMapPage(this, args); mappedContext = args.PageMappedContext; } return(mappedContext); }
/// <summary> /// 创建Page_Context /// </summary> /// <param name="controllerContext"></param> /// <param name="site"></param> /// <param name="page"></param> /// <returns></returns> public Page_Context CreatePageContext(ControllerContext controllerContext, SiteMappedContext siteMappedContext, PageMappedContext mappedContext) { Contract.Requires(controllerContext != null); Contract.Requires(siteMappedContext != null); Contract.Requires(mappedContext != null); foreach (var item in _events) { item.PreCreatePageContext(this, new PreCreatePageContextEventArgs(controllerContext, siteMappedContext, mappedContext)); } var page_context = _pageRequestFlow.CreatePageContext(controllerContext, siteMappedContext, mappedContext); foreach (var item in _events) { var args = new PostCreatePageContextEventArgs(page_context); item.PostCreatePageContext(this, args); page_context = args.Page_Context; } return(page_context); }
/// <summary> /// 查找处理请求的Handler /// 比如:PageRequestHandler /// </summary> /// <param name="controllerContext">The HTTP context.</param> /// <returns></returns> public IRequestHandler MapRequestHandler(ControllerContext controllerContext, SiteMappedContext siteMappedContext) { Contract.Requires(controllerContext != null); Contract.Requires(siteMappedContext != null); foreach (var item in _events) { item.PreMapRequestHandler(this, new PreMapRequestHandlerEventArgs(controllerContext, siteMappedContext)); } var requestHandler = _siteRequestFlow.MapRequestHandler(controllerContext, siteMappedContext); foreach (var item in _events) { item.PostMapRequestHandler(this, new PostMapRequestHandlerEventArgs(controllerContext, siteMappedContext, requestHandler)); } return(requestHandler); }
protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); _siteMappedContext = ((FrontHttpContextWrapper)this.ControllerContext.HttpContext).SiteMappedContext; }
public NoPageRequestHandler(ControllerContext controllerContext, SiteMappedContext siteMappedContext, ISiteFileProvider siteFileProvider) { this._controllerContext = controllerContext; this._siteMappedContext = siteMappedContext; this._siteFileProvider = siteFileProvider; }
public void EndSiteRequest(System.Web.HttpContextBase httpContext, SiteMappedContext siteMappedContext) { //end site request }
public void ExecuteRequestHandler(System.Web.Mvc.ControllerContext controllerContext, IRequestHandler requestHandler, SiteMappedContext siteMappedContext) { requestHandler.ExecuteRequest(); }
public IRequestHandler MapRequestHandler(System.Web.Mvc.ControllerContext controllerContext, SiteMappedContext siteMappedContext) { if (siteMappedContext == null) { return(EngineContext.Current.Resolve <NoSiteRequestHandler>(new Parameter("controllerContext", controllerContext))); } else { var pageMappedContext = _pageRequestFlowAdapter.MapPage(controllerContext, siteMappedContext); if (pageMappedContext != null) { return(new PageRequestHandler(controllerContext, _pageRequestFlowAdapter, siteMappedContext, pageMappedContext)); } else { return(EngineContext.Current.Resolve <NoPageRequestHandler>(new Parameter("controllerContext", controllerContext), new Parameter("siteMappedContext", siteMappedContext))); } } }
public System.Web.HttpContextBase RenewHttpContext(System.Web.HttpContext httpContext, SiteMappedContext siteMappedContext) { return(new FrontHttpContextWrapper(httpContext, siteMappedContext)); }