Ejemplo n.º 1
0
        public WebPipelineAction ProcessRequest(CmsPageRequest pageRequest)
        {
            //var siteRoute = (SiteRoute)context.Request.RequestContext.RouteData.DataTokens[CmsRouteDataTokens.RouteDataToken];
            //var contentEnvironment = (ContentEnvironment)context.Request.RequestContext.RouteData.DataTokens[CmsRouteDataTokens.ContentEnvironmentToken];

            var siteRoute = pageRequest.Route;

            if (siteRoute is RedirectPageRoute)
            {
                var redirectRoute = (RedirectPageRoute)siteRoute;
                if (redirectRoute.InternalRedirectPageId == null)
                {
                    return(new UnhandledRequest());
                }

                return(ProcessRedirectPageRequest(redirectRoute));
            }


            if (siteRoute is GroupingPageRoute)
            {
                var redirectRoute = (GroupingPageRoute)siteRoute;
                if (redirectRoute.InternalRedirectPageId == null)
                {
                    return(new UnhandledRequest());
                }

                return(ProcessGroupingPageRequest(redirectRoute));
            }


            return(ProcessRequestForContentPage(pageRequest.CmsPage));
        }
Ejemplo n.º 2
0
        private static void RenderContentPage(CmsPageRequest rt)
        {
            var builder         = new PageCompositionBuilder();
            var pageComposition = builder.CreatePageComposition(rt.CmsPage);

            var fragmentMode = rt.PageRenderMode == PageRenderMode.PageDesigner
                ? FragmentRenderMode.PageDesigner
                : FragmentRenderMode.Readonly;

            var cre   = new BatchingFragmentRenderer();
            var batch = cre.Execute(pageComposition, fragmentMode);

            var cache = Dependency.Resolve <CmsPageContentOutputCacheProvider>();

            foreach (var item in pageComposition.RootElement.GetAllDescendents())
            {
                if (!string.IsNullOrWhiteSpace(item.CacheKey))
                {
                    cache.AddToCache(item.CacheKey, new CachedPageContentOutput
                    {
                        InternalLayout  = (item as IHasInternalLayout)?.GetInternalLayout(),
                        RenderingResult = batch.RenderingResults[item.ContentId]
                    });
                }
            }


            var compositor = new RenderFragmentCompositor(pageComposition, batch);

            var writer = new HtmlOnlyComposedHtmlWriter();

            compositor.WriteComposedFragments(fragmentMode, writer);

            HttpContext.Current.Response.Write(writer.ToString());
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Component Request
 /// </summary>
 public ComponentRequest(CmsPageRequest pageRequest, Component component, ComponentInstance instance)
 {
     PageRequest = pageRequest;
     Component   = component;
     Instance    = instance;
 }