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 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); }
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); }