示例#1
0
 private CmsPageModel GenerateCmsPageModel(CmsContent article, Item item, PageType pageTypeResult, List <ContentItem> contentItems,
                                           Entry parentPage, MenuPageModel.MenuPageContent menu, BannerPageModel banners)
 {
     return(new CmsPageModel
     {
         PageAttributes = new PageModel
         {
             Title = item.Fields.Title,
             Summary = item.Fields.Summary,
             Slug = item.Fields.Slug,
             HubType = item.Fields.HubType,
             MetaDescription = item.Fields.MetaDescription,
             PageType = pageTypeResult,
         },
         MainContent = new PageContent
         {
             Items = contentItems
         },
         Attachments = item.Fields.Attachments?.Select(attachment => article.GetEmbeddedResource(attachment.Sys.Id))
                       .ToList(),
         RelatedArticles = article.Includes?.Entry != null
             ? article
                           .Includes
                           .Entry.Where(c => c.Sys?.ContentType?.Sys?.Type != null &&
                                        c.Sys.ContentType.Sys.Type.Equals("link",
                                                                          StringComparison.CurrentCultureIgnoreCase) &&
                                        c.Sys.ContentType.Sys.LinkType.Equals("ContentType",
                                                                              StringComparison.CurrentCultureIgnoreCase) &&
                                        Enum.TryParse <PageType>(c.Sys.ContentType.Sys.Id, true, out var type) &&
                                        type == PageType.Article
                                        )
                           .Select(entry => new PageModel
         {
             Slug = entry.Fields.Slug,
             Summary = entry.Fields.Summary,
             Title = entry.Fields.Title,
             HubType = entry.Fields.HubType,
             MetaDescription = entry.Fields.MetaDescription
         })
                           .ToList()
             : new List <PageModel>(),
         ParentPage = parentPage != null
             ? new PageModel
         {
             Slug = parentPage.Fields.Slug,
             Title = parentPage.Fields.Title,
             Summary = parentPage.Fields.Summary,
             HubType = parentPage.Fields.HubType,
             MetaDescription = parentPage.Fields.MetaDescription
         }
             : null,
         MenuContent = menu,
         TabbedContents = ProcessTabbedContent(article, item),
         BannerModels = banners
     });
示例#2
0
        public LandingPageModel Build(CmsContent hub, MenuPageModel.MenuPageContent menu, BannerPageModel banners)
        {
            if (hub.ContentItemsAreNullOrEmpty())
            {
                return(null);
            }

            var item = hub.Items.FirstOrDefault();

            Enum.TryParse <PageType>(item.Sys.ContentType.Sys.Id, true, out var pageTypeResult);

            return(GenerateHubPageModel(item, pageTypeResult, ProcessCards(hub), ProcessHeaderImage(hub, item), menu, banners));
        }
示例#3
0
 private static LandingPageModel GenerateHubPageModel(Item item, PageType pageTypeResult, List <CardPageModel> cards, ContentItem headerImage, MenuPageModel.MenuPageContent menu, BannerPageModel banners)
 {
     return(new LandingPageModel()
     {
         PageAttributes = new PageModel
         {
             Title = item.Fields.Title,
             Summary = item.Fields.Summary,
             Slug = item.Fields.Slug,
             HubType = item.Fields.HubType,
             MetaDescription = item.Fields.MetaDescription,
             PageType = pageTypeResult,
         },
         MainContent = new HubContent()
         {
             Cards = cards,
             HeaderImage = headerImage
         },
         MenuContent = menu,
         BannerModels = banners
     });
 }
示例#4
0
        public CmsPageModel Build(CmsContent article, MenuPageModel.MenuPageContent menu, BannerPageModel banners)
        {
            if (article.ContentItemsAreNullOrEmpty())
            {
                return(null);
            }

            var item = article.Items.FirstOrDefault();

            var pageTypeResult = item.Sys.ContentType.Sys.Id.GetPageType();

            var contentItems = new List <ContentItem>();

            if (item.Fields.Content?.Content == null)
            {
                return(GenerateCmsPageModel(article, item, pageTypeResult, contentItems, null, menu, banners));
            }

            foreach (var contentItem in item.Fields.Content.Content)
            {
                article.ProcessContentNodeTypes(contentItem, contentItems);
                contentItem.ProcessListNodeTypes(contentItems);
                article.ProcessEmbeddedAssetBlockNodeTypes(contentItem, contentItems);
            }

            var parentPage =
                article.Includes.Entry.FirstOrDefault(c => c.Sys.Id.Equals(item.Fields.LandingPage?.Sys?.Id));

            return(GenerateCmsPageModel(article, item, pageTypeResult, contentItems, parentPage, menu, banners));
        }