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 T GetById(Guid contentId)
        {
            var conditionText = By.ContentId(contentId);
            var filter        = SqlTranslator.Build(conditionText, typeof(T));

            return(Orm.FindUnversionedContent <T>(filter).Result.Single());
        }
Example #3
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()
            }));
        }
        public PreviewNode Page(Guid formId)
        {
            var draft = new FormRepository().FindContentVersions(By.ContentId(formId), ContentEnvironment.Draft).Result.Single();
            var structureNodeConverter = new StructureNodeConverter();
            var structure = structureNodeConverter.GetPageStructure(draft);

            return(new FormDesignerPreviewWriter().Write(structure));
        }
        public void SaveDraft(Guid formId, PageStructure pageStructure)
        {
            var pageRepository = new FormRepository();
            var draft          = pageRepository.FindContentVersions(By.ContentId(formId), ContentEnvironment.Draft).Result.Single();

            new StructureNodeConverter().ApplyNewStructureToCmsPage(draft, pageStructure);
            pageRepository.Save(draft);
        }
Example #6
0
        private CmsForm SetupRedirectPageSettingsForm()
        {
            var form = new CmsForm
            {
                ContentId     = KnownFormIds.RedirectPageSettingsForm,
                Name          = "Redirect Page Settings",
                RepositoryUid = new Guid(CmsPageRepository.ApiId),
            };

            //CmsPageContentBuilder builder = new CmsPageContentBuilder();

            //var twoColumn =
            //    builder.BuildCmsPageContentFromWebFormsControl(new RowLayout { NumColumns = 2 });
            //twoColumn.PlacementContentPlaceHolderId = ConfiguratorFormBuilder.RuntimePlaceHolderId;
            //form.FormContent.Add(twoColumn);


            //var textboxPageContent =
            //    builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorTextBox
            //    {
            //        PropertyName = nameof(CmsPage.Name),
            //        DisplayName = "Page Name",

            //    });

            //textboxPageContent.PlacementContentPlaceHolderId = "0";

            //var urlSelector =
            //    builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorUrlSelector()
            //    {
            //        PropertyName = nameof(CmsPage.RedirectUri),
            //        DisplayName = "Redirect To",

            //    });

            //textboxPageContent.PlacementContentPlaceHolderId = "0";

            //twoColumn.AllContent.Add(textboxPageContent);
            //twoColumn.AllContent.Add(urlSelector);


            //var siteIdDropdown =
            //    builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorHiddenField()
            //    {
            //        PropertyName = nameof(CmsPage.SiteId)
            //    });
            //twoColumn.AllContent.Add(siteIdDropdown);

            var formRepository = new FormRepository();

            formRepository.Save(form);
            formRepository.Publish(By.ContentId(form.ContentId));

            return(form);
        }
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            var formIdRaw   = Request["formId"];
            var formTypeRaw = Request["formType"];

            ContentTypePicker.Visible = string.IsNullOrEmpty(formTypeRaw) && string.IsNullOrEmpty(formIdRaw);
            if (ContentTypePicker.Visible)
            {
                ContentTypeDropDownList.Items.Add(new ListItem(string.Empty, string.Empty));
                var all = new RepositoryMetadataManager().Find();
                foreach (var contentType in all)
                {
                    var text = RepositoryTypeResolver.ResolveTypeByApiId(contentType.ApiId).Name;
                    ContentTypeDropDownList.Items.Add(new ListItem(text, contentType.ApiId.ToString()));
                }

                SelectContentTypeButton.Click += (sender, args) =>
                {
                    //todo: make this work regardless of the querystring already present.
                    var url = HttpContext.Current.Request.RawUrl + "&formType=" + ContentTypeDropDownList.SelectedValue;
                    HttpContext.Current.Response.Redirect(url);
                };
                return;
            }

            CmsForm cmsForm;

            if (string.IsNullOrEmpty(formIdRaw))
            {
                cmsForm = new CmsForm
                {
                    ContentId     = Guid.NewGuid(),
                    RepositoryUid = new Guid(formTypeRaw)
                }
            }
            ;
            else
            {
                var formRepository = new FormRepository();
                cmsForm = formRepository.FindContentVersions(By.ContentId(new Guid(formIdRaw)), ContentEnvironment.Draft).Result.Single();
            }

            //var mgr = new EditingContextManager();
            //var ec = mgr.GetOrCreateEditingContext(cmsForm);

            //CmsPageLayoutEngine.ActivateAndPlaceContent(RuntimePlaceHolder, ec.AllContent,PageRenderMode.PageDesigner);

            //RuntimePlaceHolder.Controls.AddAt(0, new DropTarget(RuntimePlaceHolder, DropTargetDirective.Begin));
            //RuntimePlaceHolder.Controls.Add(new DropTarget(RuntimePlaceHolder, DropTargetDirective.End));

            //this.Page.Init += (x,y) => this.Page.EnableDesignerDependencies();
        }
        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 InternalLayout GetInternalLayout()
        {
            EnsureLayoutInitialized();

            var layout = new InternalLayout();

            layout.PlaceHolderIds.Add(nameof(surface));

            var formRepository = new FormRepository();

            _cmsForm = formRepository.FindContentVersions(By.ContentId(FormId), ContentEnvironment.Live).Result.Single();

            foreach (var item in _cmsForm.ChildNodes)              //todo: better way.
            {
                item.PlacementContentPlaceHolderId = nameof(surface);
            }

            layout.DefaultContent.AddRange(_cmsForm.ChildNodes.Select(x => PresentationElementHelpers.ToPresentationElement(x)));
            return(layout);
        }
Example #10
0
        public EditingSession InitializeEditingSession(Guid formId, Guid?contentId)
        {
            var            form = new FormRepository().FindContentVersions(By.ContentId(formId), WarpCore.Platform.Orm.ContentEnvironment.Draft).Result.Single();
            var            repo = RepositoryActivator.ActivateRepository <ISupportsCmsForms>(form.RepositoryUid);
            WarpCoreEntity entity;

            if (contentId != null)
            {
                entity = repo.GetById(contentId.Value);
            }
            else
            {
                entity = repo.New();
            }


            var runtime = new FormsRuntime();

            return(runtime.EditingSession(form, entity));
        }
Example #11
0
        private void SaveDraftChecksum(VersionedContentEntity item)
        {
            var contentType = item.GetType().GetCustomAttribute <TableAttribute>().TableName;

            var booleanExpression = By.ContentId(item.ContentId);
            var filter            = SqlTranslator.Build(booleanExpression, item.GetType());

            var currentPublishingData = Orm.FindUnversionedContent <ContentChecksum>(filter)
                                        .Result.SingleOrDefault();

            if (currentPublishingData == null)
            {
                currentPublishingData = new ContentChecksum
                {
                    ContentId   = item.ContentId,
                    Draft       = item.GetContentChecksum(),
                    ContentType = contentType
                };
                Orm.Save(currentPublishingData);
            }
        }
Example #12
0
        public ConfiguratorFormDescription GetConfiguratorForm(Guid formId)
        {
            var form = new FormRepository().FindContentVersions(By.ContentId(formId), WarpCore.Platform.Orm.ContentEnvironment.Live).Result.Single();

            var description =
                new ConfiguratorFormDescription
            {
                Layout        = new StructureNodeConverter().GetPageStructure(form),
                DefaultValues = new Dictionary <string, string>()
            };


            var repo       = RepositoryActivator.ActivateRepository <ISupportsCmsForms>(form.RepositoryUid);
            var entityType = repo.New().GetType();
            var dtd        = Dependency.Resolve <IDynamicTypeDefinitionResolver>().Resolve(entityType);

            description.Metadata = new EntityMetadata
            {
                TitleProperty = dtd?.TitleProperty
            };


            return(description);
        }
        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);
        }
Example #15
0
 WarpCoreEntity ISupportsCmsForms.GetById(Guid id)
 {
     return(this.FindContentVersions(By.ContentId(id), ContentEnvironment.Draft).Result.Single());
 }
Example #16
0
        public ContentListData GetContentListData(Guid repositoryApiId, Guid listId, string filter)
        {
            var definition = new ContentListDefinitionRepository().FindContentVersions(By.ContentId(listId)).Result
                             .Single();

            var repo = RepositoryActivator.ActivateRepository(repositoryApiId);
            List <WarpCoreEntity> allItems = null;

            var entityType = RepositoryTypeResolver.ResolveTypeByApiId(repositoryApiId);
            var tokens     = new BooleanExpressionParser().ReadBooleanExpressionTokens(filter);
            var expression = new BooleanExpressionTokenReader().CreateBooleanExpressionFromTokens(tokens);



            if (repo is IUnversionedContentRepository unversionedRepo)
            {
                allItems = unversionedRepo.FindContent(expression)
                           .Cast <WarpCoreEntity>()
                           .ToList();
            }

            if (repo is IVersionedContentRepository versionedRepo)
            {
                allItems = versionedRepo.FindContentVersions(expression, ContentEnvironment.Draft)
                           .Cast <WarpCoreEntity>()
                           .ToList();
            }

            if (allItems == null)
            {
                throw new Exception();
            }

            var propertyNameLookup = definition.Fields.ToLookup(x => x.PropertyName);


            var wrapper = new ContentListData();

            foreach (var item in allItems)
            {
                var dict = item.GetPropertyValues(x => propertyNameLookup.Contains(x.Name));
                dict[nameof(item.ContentId)] = item.ContentId.ToString();
                wrapper.Items.Add(dict);
            }


            return(wrapper);
        }
Example #17
0
        public ContentListDescription ListDescription(Guid listId)
        {
            var definition = new ContentListDefinitionRepository().FindContentVersions(By.ContentId(listId)).Result
                             .Single();

            return(new ContentListDescription
            {
                Fields = definition.Fields.Select(x => new ListField
                {
                    FieldId = x.Id,
                    DisplayName = x.Label,
                    PropertyName = x.PropertyName
                }).ToList()
            });
        }
        public PageStructure PageStructure(Guid formId)
        {
            var draft = new FormRepository().FindContentVersions(By.ContentId(formId), ContentEnvironment.Draft).Result.Single();

            return(new StructureNodeConverter().GetPageStructure(draft));
        }
Example #19
0
        private CmsForm SetupPageSettingsForm()
        {
            var form = new ConfiguratorCmsPageContentBuilder().GenerateDefaultForm(typeof(CmsPage), FormStyle.Edit);


            form.ContentId     = KnownFormIds.ContentPageSettingsForm;
            form.Name          = "Content Page Settings";
            form.RepositoryUid = new Guid(CmsPageRepository.ApiId);



            //            CmsPageContentBuilder builder = new CmsPageContentBuilder();

            //            var twoColumn =
            //            builder.BuildCmsPageContentFromWebFormsControl(new RowLayout { NumColumns = 2 });
            //            twoColumn.PlacementContentPlaceHolderId = ConfiguratorFormBuilder.RuntimePlaceHolderId;
            //            form.FormContent.Add(twoColumn);


            //            var textboxPageContent =
            //                builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorTextBox
            //                {
            //                    PropertyName = nameof(CmsPage.Name),
            //                    DisplayName = "Page Name",

            //                });

            //            textboxPageContent.PlacementContentPlaceHolderId = "0";
            //            twoColumn.AllContent.Add(textboxPageContent);


            //            var layoutDropDown =
            //            builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorDropDownList
            //            {
            //                PropertyName = nameof(CmsPage.LayoutId),
            //                DisplayName = "Layout",
            //            });
            //            layoutDropDown.PlacementContentPlaceHolderId = "1";
            //            twoColumn.AllContent.Add(layoutDropDown);

            //            var oneColumn =
            //builder.BuildCmsPageContentFromWebFormsControl(new RowLayout { NumColumns = 1 });
            //            oneColumn.PlacementContentPlaceHolderId = ConfiguratorFormBuilder.RuntimePlaceHolderId;
            //            form.FormContent.Add(oneColumn);

            //            var keywords =
            //                builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorTextBox
            //                {
            //                    PropertyName = nameof(CmsPage.Keywords),
            //                    DisplayName = "Keywords",
            //                });
            //            keywords.PlacementContentPlaceHolderId = "0";
            //            oneColumn.AllContent.Add(keywords);

            //            var description =
            //                builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorTextBox
            //                {
            //                    PropertyName = nameof(CmsPage.Description),
            //                    DisplayName = "Description",
            //                });
            //            oneColumn.AllContent.Add(description);

            //            var siteIdDropdown =
            //                builder.BuildCmsPageContentFromWebFormsControl(new ConfiguratorHiddenField()
            //                {
            //                    PropertyName = nameof(CmsPage.SiteId)
            //                });
            //            oneColumn.AllContent.Add(siteIdDropdown);

            var formRepository = new FormRepository();

            formRepository.Save(form);
            formRepository.Publish(By.ContentId(form.ContentId));

            return(form);
        }
Example #20
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);
        }