Example #1
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()
            });
        }
Example #2
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 #3
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);
        }