public ActionResult Index()
        {
            var repoTest = new CmsPageRepository();

            repoTest.GetPages();
            return(View());
        }
Exemple #2
0
        public ViewResult Index()
        {
            var frontendSites = _siteRepository.GetFrontendSites();

            var rt       = WebPipeline.CurrentRequest;
            var siteId   = rt.Route.SiteId;
            var site     = _siteRepository.GetById(siteId);
            var livePage = new CmsPageRepository()
                           .FindContentVersions(By.ContentId(site.HomepageId.Value), ContentEnvironment.Live).Result;

            var uriBuilder = new CmsUriBuilder();
            var uri        = uriBuilder.CreateUri(
                livePage.Single(),
                UriSettings.Default,
                new Dictionary <string, string> {
                ["SiteId"] = siteId.ToString()
            });


            return(View(new NavigationBarViewModel
            {
                Sites = frontendSites.Select(x => new NavBarItem {
                    Text = x.Name, Url = uri.ToString()
                }).ToList(),
                TopLevelNavigationItems = CreateNavBarItems().ToList()
            }));
        }
        protected void CreateNewItemButton_OnClick(object sender, EventArgs e)
        {
            Guid defaultSiteId       = Guid.Empty;
            var  defaultFrontendSite = SiteManagementContext.GetSiteToManage();

            if (defaultFrontendSite != null)
            {
                defaultSiteId = defaultFrontendSite.ContentId;
            }


            var uriBuilder = new CmsUriBuilder();
            var editPage   = new CmsPageRepository()
                             .FindContentVersions(By.ContentId(Config.AddPage), ContentEnvironment.Live)
                             .Result
                             .Single();

            var defaultValues = new DefaultValueCollection {
                ["SiteId"] = defaultSiteId.ToString()
            };
            var newPageUri = uriBuilder.CreateUri(editPage, UriSettings.Default, new Dictionary <string, string>
            {
                [nameof(DynamicFormRequestContext.DefaultValues)] = defaultValues.ToString()
            });

            Response.Redirect(newPageUri.PathAndQuery);
        }
        public void SaveDraft(Guid pageId, PageStructure pageStructure)
        {
            var pageRepository = new CmsPageRepository();
            var draft          = pageRepository.FindContentVersions(By.ContentId(pageId), ContentEnvironment.Draft).Result.Single();

            new StructureNodeConverter().ApplyNewStructureToCmsPage(draft, pageStructure);
            pageRepository.Save(draft);
        }
        public PreviewNode Page(Guid pageId)
        {
            var draft      = new CmsPageRepository().FindContentVersions(By.ContentId(pageId), ContentEnvironment.Draft).Result.Single();
            var page       = new PageCompositionBuilder().CreatePageComposition(draft);
            var cre        = new BatchingFragmentRenderer();
            var batch      = cre.Execute(page, FragmentRenderMode.PageDesigner);
            var compositor = new RenderFragmentCompositor(page, batch);
            var treeWriter = new PagePreviewWriter(draft);

            compositor.WriteComposedFragments(FragmentRenderMode.PageDesigner, treeWriter);
            return(treeWriter.RootNode);
        }
        public void Publish(Guid id)
        {
            var cmsPageRepository = new CmsPageRepository();

            cmsPageRepository.Publish(By.ContentId(id));
        }
        public Requests.CmsPageRequest Build(IHttpRequest httpRequest)
        {
            var routeRaw          = httpRequest.QueryString[PageDesignerUriComponents.PageId];
            var environmentRaw    = httpRequest.QueryString[PageDesignerUriComponents.ContentEnvironment];
            var contentVersionRaw = httpRequest.QueryString[PageDesignerUriComponents.ContentVersion];
            var viewModeRaw       = httpRequest.QueryString[PageDesignerUriComponents.ViewMode];
            var siteRaw           = httpRequest.QueryString[PageDesignerUriComponents.SiteId];

            PageRenderMode pageRenderMode = PageRenderMode.Readonly;

            if (!string.IsNullOrWhiteSpace(viewModeRaw))
            {
                pageRenderMode = (PageRenderMode)Enum.Parse(typeof(PageRenderMode), viewModeRaw, true);
            }


            ContentEnvironment env = ContentEnvironment.Live;

            if (!string.IsNullOrWhiteSpace(environmentRaw))
            {
                env = (ContentEnvironment)Enum.Parse(typeof(ContentEnvironment), environmentRaw, true);
            }
            else
            {
                if (pageRenderMode == PageRenderMode.PageDesigner)
                {
                    env = ContentEnvironment.Draft;
                }
            }

            decimal contentVersion = 0;

            if (!string.IsNullOrWhiteSpace(contentVersionRaw))
            {
                contentVersion = Convert.ToDecimal(contentVersionRaw);
            }


            var routeContext = new Requests.CmsPageRequest();

            routeContext.PageRenderMode = pageRenderMode;

            SiteRoute route;

            if (!string.IsNullOrWhiteSpace(routeRaw))
            {
                route = new ContentPageRoute
                {
                    Authority = UriAuthorityFilter.Any,
                    PageId    = new Guid(routeRaw),
                    SiteId    = new Guid(siteRaw),
                };
            }
            else
            {
                var success = CmsRoutes.Current.TryResolveRoute(httpRequest.Uri, out route);
            }
            routeContext.Route = route;


            if (route?.PageId == null)
            {
                return(routeContext);
            }

            var cmsPageVersions = new CmsPageRepository().FindContentVersions(By.ContentId(route.PageId.Value), env).Result;

            if (env == ContentEnvironment.Archive)
            {
                routeContext.CmsPage = cmsPageVersions.Single(x => x.ContentVersion == contentVersion);
            }
            else
            {
                routeContext.CmsPage = cmsPageVersions.Single();
            }

            return(routeContext);
        }
        public PageStructure PageStructure(Guid pageId)
        {
            var draft = new CmsPageRepository().FindContentVersions(By.ContentId(pageId), ContentEnvironment.Draft).Result.Single();

            return(new StructureNodeConverter().GetPageStructure(draft));
        }
Exemple #9
0
        public Site SetupTestSite()
        {
            var tbx = new ToolboxManager();

            var myLayout = new Layout
            {
                Name           = "Demo",
                MasterPagePath = "/Demo.Master",
            };

            myLayout.PageContent.Add(new CmsPageContent
            {
                Id             = Guid.NewGuid(),
                WidgetTypeCode = "Client-CustomNavigation",
                PlacementContentPlaceHolderId = "NavigationContentPlaceHolder"
            });
            var layoutRepository = new LayoutRepository();

            layoutRepository.Save(myLayout);

            var siteRepo = new SiteRepository();
            var newSite  = new Site
            {
                Name           = "WarpCore Demo",
                IsFrontendSite = true
            };

            siteRepo.Save(newSite);

            var homePage = new CmsPage
            {
                Name        = "Homepage",
                SiteId      = newSite.ContentId,
                LayoutId    = myLayout.ContentId,
                Keywords    = "WarpCore,CMS,Demo",
                Description = "WarpCore CMS Demo"
            };

            var lbId = Guid.NewGuid();
            var row  = new CmsPageContent
            {
                Id             = Guid.NewGuid(),
                WidgetTypeCode = RowLayout.ApiId,
                PlacementContentPlaceHolderId = "Body",
                Parameters = new Dictionary <string, string>
                {
                    //[nameof(RowLayout.LayoutBuilderId)] = lbId.ToString(),
                    [nameof(RowLayout.NumColumns)] = 3.ToString()
                }
            };

            var helloWorld0 = new CmsPageContent
            {
                Id = Guid.NewGuid(),
                PlacementContentPlaceHolderId = "0",
                PlacementLayoutBuilderId      = lbId,
                WidgetTypeCode = ContentBlock.ApiId,
                Parameters     = new Dictionary <string, string> {
                    ["AdHocHtml"] = "Hello World (0)"
                }
            };

            var helloWorld1 = new CmsPageContent
            {
                Id = Guid.NewGuid(),
                PlacementContentPlaceHolderId = "1",
                PlacementLayoutBuilderId      = lbId,
                WidgetTypeCode = ContentBlock.ApiId,
                Parameters     = new Dictionary <string, string> {
                    ["AdHocHtml"] = "Hello World (1)"
                }
            };

            row.AllContent.Add(helloWorld0);
            row.AllContent.Add(helloWorld1);

            homePage.PageContent.Add(row);



            var aboutUs = new CmsPage
            {
                Name     = "About Us",
                SiteId   = newSite.ContentId,
                LayoutId = myLayout.ContentId
            };
            var contactUs = new CmsPage
            {
                Name     = "Contact Us",
                SiteId   = newSite.ContentId,
                LayoutId = myLayout.ContentId
            };

            var pageRepository = new CmsPageRepository();

            pageRepository.Save(homePage, SitemapRelativePosition.Root);
            pageRepository.Save(aboutUs, SitemapRelativePosition.Root);
            pageRepository.Save(contactUs, SitemapRelativePosition.Root);
            newSite.HomepageId = homePage.ContentId;
            siteRepo.Save(newSite);

            var subPage1 = new CmsPage
            {
                Name   = "Subpage 1",
                SiteId = newSite.ContentId
            };

            pageRepository.Save(subPage1, new PageRelativePosition {
                ParentPageId = homePage.ContentId
            });

            var subPage0 = new CmsPage
            {
                Name   = "Subpage 0",
                SiteId = newSite.ContentId
            };

            pageRepository.Save(subPage0, new PageRelativePosition {
                ParentPageId = homePage.ContentId, BeforePageId = subPage1.ContentId
            });

            return(newSite);
        }
Exemple #10
0
        public void SetupBackendSite()
        {
            var listRepo       = new ContentListDefinitionRepository();
            var customPageList = new ConfiguratorCmsPageContentBuilder().GenerateDefaultContentListDefinition(typeof(CmsPage));

            customPageList.EntityUid = new Guid(CmsForm.ApiId);
            listRepo.Save(customPageList);
            listRepo.Publish(By.ContentId(customPageList.ContentId));



            var backendLayout = new Layout
            {
                Name           = "Backend Layout",
                MasterPagePath = "/App_Data/BackendPage.Master",
                PageContent    = new List <CmsPageContent> {
                    new CmsPageContent {
                        Id = Guid.NewGuid(), PlacementContentPlaceHolderId = "Body", WidgetTypeCode = "wc-navigation-bar"
                    }
                }
            };


            var layoutRepository = new LayoutRepository();

            layoutRepository.Save(backendLayout);


            var siteRepo    = new SiteRepository();
            var backendSite = new Site
            {
                Name        = "Admin",
                RoutePrefix = "Admin",
                ContentId   = new Guid("00000000-0000-0000-0000-000000000001"),
            };

            siteRepo.Save(backendSite);


            var formDesigner = new CmsPage
            {
                Name                = "Form Designer",
                ContentId           = KnownPageIds.FormDesigner,
                SiteId              = backendSite.ContentId,
                LayoutId            = backendLayout.ContentId,
                DisplayInNavigation = false,
            };

            formDesigner.PageContent.Add(new CmsPageContent
            {
                Id = Guid.NewGuid(),
                PlacementContentPlaceHolderId = "Body",
                WidgetTypeCode = "wc-formdesigner"
            });


            var pageTree = new CmsPage
            {
                Name     = "Pages",
                SiteId   = backendSite.ContentId,
                LayoutId = backendLayout.ContentId
            };

            pageTree.PageContent.AddBlazorApp(new PageTreeApp());


            var redirectPageSettingsForm = SetupRedirectPageSettingsForm();
            var groupingPageSettingsForm = SetupGroupingPageSettingsForm();
            var pageSettingsForm         = SetupPageSettingsForm();


            var addPageWizard = new CmsPage
            {
                Name                = "Add Page Wizard",
                ContentId           = KnownPageIds.AddPageWizard,
                SiteId              = backendSite.ContentId,
                LayoutId            = backendLayout.ContentId,
                DisplayInNavigation = false
            };

            addPageWizard.PageContent.Add(new CmsPageContent
            {
                Id = Guid.NewGuid(),
                PlacementContentPlaceHolderId = "Body",
                WidgetTypeCode = AddPageWizard.ApiId,
            });



            var contentPageSettings = new CmsPage
            {
                Name                = "Content Page Settings",
                ContentId           = KnownPageIds.ContentPageSettings,
                SiteId              = backendSite.ContentId,
                LayoutId            = backendLayout.ContentId,
                DisplayInNavigation = false
            };

            contentPageSettings.PageContent.AddDynamicForm(pageSettingsForm);


            var groupingPageSettings = new CmsPage
            {
                Name                = "Group Page Settings",
                ContentId           = KnownPageIds.GroupingPageSettings,
                SiteId              = backendSite.ContentId,
                LayoutId            = backendLayout.ContentId,
                DisplayInNavigation = false
            };

            groupingPageSettings.PageContent.AddDynamicForm(groupingPageSettingsForm);

            var redirectPageSettings = new CmsPage
            {
                Name                = "Redirect Page Settings",
                ContentId           = KnownPageIds.RedirectPageSettings,
                SiteId              = backendSite.ContentId,
                LayoutId            = backendLayout.ContentId,
                DisplayInNavigation = false
            };

            redirectPageSettings.PageContent.AddDynamicForm(redirectPageSettingsForm);

            var dashboardPage = new CmsPage
            {
                Name     = "Dashboard",
                SiteId   = backendSite.ContentId,
                LayoutId = backendLayout.ContentId
            };


            var entityBuilderPage = new CmsPage
            {
                Name     = "Entity Builder",
                SiteId   = backendSite.ContentId,
                LayoutId = backendLayout.ContentId
            };

            entityBuilderPage.PageContent.Add(new CmsPageContent
            {
                Id = Guid.NewGuid(),
                PlacementContentPlaceHolderId = "Body",
                WidgetTypeCode = "wc-entitybuilder",
                Parameters     = new Dictionary <string, string> {
                }
            });

            var entityListPage = new CmsPage
            {
                Name     = "Entities",
                SiteId   = backendSite.ContentId,
                LayoutId = backendLayout.ContentId
            };

            entityListPage.PageContent.Add(new CmsPageContent
            {
                Id = Guid.NewGuid(),
                PlacementContentPlaceHolderId = "Body",
                WidgetTypeCode = "wc-entity-list",
                Parameters     = new Dictionary <string, string> {
                }
            });



            //////////////////
            var dynamicListTest = new CmsPage
            {
                Name                = "Dynamic List Test",
                SiteId              = backendSite.ContentId,
                LayoutId            = backendLayout.ContentId,
                DisplayInNavigation = true
            };

            //var contentListControl = new ContentList()
            //{
            //    RepositoryId = new Guid(CmsPageRepository.ApiId),
            //    Config = new ContentListConfiguration
            //    {
            //        Fields = new List<ContentListField>
            //        {
            //            new ContentListField
            //            {
            //                Header = "Name",
            //                Template = "{" + nameof(CmsPage.Name) + "}"
            //            }

            //        }

            //    },

            //};
            //var parameters = (Dictionary<string, string>)contentListControl.GetPropertyValues(ToolboxPropertyFilter.SupportsDesigner);



            //var list= new ContentListDefinitionRepository().GetRandomList(new Guid(CmsForm.ApiId));
            //var bApp = new BlazorApp
            //{
            //    StartingRouteTemplate = "",
            //    StartingRouteParameters = new RouteDataDictionary()
            //    {
            //        ["RepositoryApiId"] = FormRepository.ApiId,
            //        ["ListId"] = list.ContentId.ToString()
            //    }
            //};
            //var listContent =new InstallationHelpers().BuildCmsPageContentFromToolboxItemTemplate();
            //listContent.PlacementContentPlaceHolderId = "Body";

            var contentBrowserConfig = new ContentBrowserConfiguration();

            contentBrowserConfig.RepositoryApiId = new Guid(CmsPageRepository.ApiId);
            contentBrowserConfig.ListId          = customPageList.ContentId;
            contentBrowserConfig.EditFormId      = KnownFormIds.ContentPageSettingsForm;
            contentBrowserConfig.AddFormId       = KnownFormIds.ContentPageSettingsForm;

            dynamicListTest.PageContent.AddBlazorApp(new ContentBrowserApp {
                Configuration = contentBrowserConfig
            });

            //dynamicListTest.PageContent.Add(new CmsPageContent
            //{
            //    Id = Guid.NewGuid(),
            //    PlacementContentPlaceHolderId = "Body",
            //    WidgetTypeCode = ContentList.ApiId,
            //    Parameters =
            //});


            ////////////////
            var formsList = new CmsPage
            {
                Name                = "FormsLegacy",
                SiteId              = backendSite.ContentId,
                LayoutId            = backendLayout.ContentId,
                DisplayInNavigation = true
            };



            var formList = new ContentList()
            {
                RepositoryId = new Guid(FormRepository.ApiId),
                Config       = new ContentListConfiguration
                {
                    Fields = new List <ContentListField>
                    {
                        new ContentListField
                        {
                            Header   = "Title",
                            Template = "{" + nameof(CmsForm.Title) + "}"
                        },
                        new ContentListField
                        {
                            Header   = "Actions",
                            Template = @"<a href='/Admin/form-designer?formId={" + nameof(CmsForm.DesignForContentId) + "}'><span class='glyphicon glyphicon-text-background'></span>Design</a>"
                        }
                    },
                    AddPage = KnownPageIds.FormDesigner
                }
            };
            var formListParameters = (Dictionary <string, string>)formList.GetPropertyValues(ToolboxPropertyFilter.SupportsDesigner);

            formsList.PageContent.Add(new CmsPageContent
            {
                Id = Guid.NewGuid(),
                PlacementContentPlaceHolderId = "Body",
                WidgetTypeCode = ContentList.ApiId,
                Parameters     = formListParameters
            });



            var pageRepo = new CmsPageRepository();

            pageRepo.Save(dashboardPage);
            pageRepo.Save(pageTree);
            pageRepo.Save(formDesigner);
            pageRepo.Save(contentPageSettings);
            pageRepo.Save(groupingPageSettings);
            pageRepo.Save(redirectPageSettings);
            pageRepo.Save(addPageWizard);
            pageRepo.Save(entityBuilderPage);
            pageRepo.Save(entityListPage);
            pageRepo.Save(dynamicListTest);
            pageRepo.Save(formsList);
            backendSite.HomepageId = dashboardPage.ContentId;
            siteRepo.Save(backendSite);

            var editBackendPageTreeLink = new CmsPage
            {
                Name        = "Edit Backend Pages",
                SiteId      = backendSite.ContentId,
                LayoutId    = backendLayout.ContentId,
                PageType    = PageType.RedirectPage,
                RedirectUri = new WarpCorePageUri(pageTree),
                InternalRedirectParameters = new Dictionary <string, string> {
                    ["SiteId"] = backendSite.ContentId.ToString()
                }
            };

            pageRepo.Save(editBackendPageTreeLink);
        }