public PageMappedContext MapPage(System.Web.HttpContextBase httpContext, SiteMappedContext siteMappedContext) { string matchedPath = null; string queryStringPath = null; PageRoute matchedRoute; var url = siteMappedContext.RequestUrl; Page page; if (string.IsNullOrEmpty(url) || url == "/") { page = GetDefaultPage(siteMappedContext.Site); matchedPath = "/"; matchedRoute = page.Routes == null ? null : page.Routes.FirstOrDefault(); queryStringPath = ""; } else { string[] paths = url.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); var allPages = _pageProvider.All(siteMappedContext.Site); page = MatchPage(allPages, paths, out matchedPath, out matchedRoute); if (page != null) { queryStringPath = url.Remove(0, matchedPath.Length).Trim('/'); } } if (page != null) { return(new PageMappedContext(page, matchedRoute, matchedPath, queryStringPath)); } return(null); }
public FrontHttpContextWrapper(HttpContext httpContext, SiteMappedContext siteMappedContext) : base(httpContext) { _context = httpContext; this.SiteMappedContext = siteMappedContext; this._request = new FrontHttpRequestWrapper(httpContext.Request, siteMappedContext); }
public PageRequestContext(ControllerContext controllerContext, SiteMappedContext siteMappedContext, PageMappedContext pageMappedContext) { this.ControllerContext = controllerContext; this.SiteMappedContext = siteMappedContext; this.PageMappedContext = pageMappedContext; this.Site = siteMappedContext.Site; this.Page = pageMappedContext.Page; }
public FrontHttpRequestWrapper(HttpRequest httpRequest, SiteMappedContext siteMappedContext) : base(httpRequest) { this._request = httpRequest; this.SiteMappedContext = siteMappedContext; // 原始的AppRelativeCurrentExecutionFilePath appRelativeCurrentExecutionFilePath = httpRequest.AppRelativeCurrentExecutionFilePath; RequestUrl = appRelativeCurrentExecutionFilePath.TrimStart('~'); ResetContext(); }
public PageMappedContext MapPage(System.Web.Mvc.ControllerContext controllerContext, SiteMappedContext siteMappedContext) { return _frontPageService.MapPage(controllerContext.HttpContext, siteMappedContext); //var page = new Page(siteMappedContext.Site, "Home"); //return new PageMappedContext() //{ // Page = page, // MatchedVirtualPath = "/", // QueryStringPath = "" //}; }
/// <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> /// 创建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; }
public Page_Context CreatePageContext(System.Web.Mvc.ControllerContext controllerContext, SiteMappedContext siteMappedContext, PageMappedContext pageMappedContext) { var pageRequestContext = new PageRequestContext(controllerContext, siteMappedContext, pageMappedContext); return new Page_Context(controllerContext, pageRequestContext); }
public BeginSiteRequestEventArgs(HttpContext httpContext, SiteMappedContext siteMappedContext) { this.HttpContext = httpContext; }
/// <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> /// 查找处理请求的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; }
/// <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); } }
public PreCreatePageContextEventArgs(ControllerContext controllerContext, SiteMappedContext siteMappedContext, PageMappedContext pageMappedContext) { this.ControllerContext = controllerContext; this.SiteMappedContext = siteMappedContext; this.PageMappedContext = pageMappedContext; }
public PreExecuteRequestHandlerEventArgs(ControllerContext controllerContext, SiteMappedContext siteMappedContext, IRequestHandler requestHandler) { this.ControllerContext = controllerContext; this.SiteMappedContext = siteMappedContext; this.RequestHandler = requestHandler; }
public PreMapRequestHandlerEventArgs(ControllerContext controllerContext, SiteMappedContext siteMappedContext) { this.ControllerContext = controllerContext; this.SiteMappedContext = siteMappedContext; }
public EndSiteRequestEventArgs(HttpContextBase httpContext, SiteMappedContext siteMappedContext) { this.HttpContext = httpContext; this.SiteMappedContext = siteMappedContext; }
public Page_Context CreatePageContext(System.Web.Mvc.ControllerContext controllerContext, SiteMappedContext siteMappedContext, PageMappedContext pageMappedContext) { var pageRequestContext = new PageRequestContext(controllerContext, siteMappedContext, pageMappedContext); return(new Page_Context(controllerContext, pageRequestContext)); }
public PageMappedContext MapPage(System.Web.Mvc.ControllerContext controllerContext, SiteMappedContext siteMappedContext) { return(_frontPageService.MapPage(controllerContext.HttpContext, siteMappedContext)); //var page = new Page(siteMappedContext.Site, "Home"); //return new PageMappedContext() //{ // Page = page, // MatchedVirtualPath = "/", // QueryStringPath = "" //}; }
/// <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; }
public PreMapPageEventArgs(ControllerContext controllerContext, SiteMappedContext siteMappedContext) { this.ControllerContext = controllerContext; this.SiteMappedContext = siteMappedContext; }
/// <summary> /// Pres the map site event arguments. /// </summary> /// <param name="httpContext">The HTTP context.</param> public PostMapSiteEventArgs(HttpContext httpContext, SiteMappedContext mappedContext) { this.HttpContext = httpContext; this.MappedContext = mappedContext; }
protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); _siteMappedContext = ((FrontHttpContextWrapper)this.ControllerContext.HttpContext).SiteMappedContext; }
public ErrorEventArgs(ControllerContext controllerContext, SiteMappedContext siteMappedContext, Exception e) { this.ControllerContext = controllerContext; this.SiteMappedContext = siteMappedContext; this.Exception = e; }