예제 #1
0
        public SitePageDisplayModel ConvertToBlogDisplayModel(SitePage current, SitePage previous, SitePage next)
        {
            var defaultPhotoUrl  = current?.Photos.FirstOrDefault(x => x.IsDefault == true);
            var previousPhotoUrl = previous?.Photos.FirstOrDefault(x => x.IsDefault == true);
            var nextPhotoUrl     = next?.Photos.FirstOrDefault(x => x.IsDefault == true);

            var model = new SitePageDisplayModel(this.cacheService)
            {
                PageContent = new SitePageContentModel()
                {
                    LastUpdatedDateTimeUtc = current.PublishDateTimeUtc,
                    Content        = current.Content,
                    Key            = current.Key,
                    Title          = current.Title,
                    BreadcrumbName = current.BreadcrumbName,
                    UrlPath        = UrlBuilder.BlogUrlPath(current.SitePageSection.Key, current.Key),

                    PreviousName    = previous?.Title,
                    PreviousUrlPath = (previous != null) ? UrlBuilder.BlogUrlPath(previous.SitePageSection.Key, previous.Key) : null,
                    DefaultPreviousPhotoThumbCdnUrl = this.ConvertBlobToCdnUrl(previousPhotoUrl?.PhotoThumbUrl),

                    NextName    = next?.Title,
                    NextUrlPath = (next != null) ? UrlBuilder.BlogUrlPath(next.SitePageSection.Key, next.Key) : null,
                    DefaultNextPhotoThumbCdnUrl = this.ConvertBlobToCdnUrl(nextPhotoUrl?.PhotoThumbUrl),

                    Photos = this.AddPhotos(current.Photos),

                    DefaultPhotoThumbUrl    = defaultPhotoUrl?.PhotoThumbUrl,
                    DefaultPhotoThumbCdnUrl = this.ConvertBlobToCdnUrl(defaultPhotoUrl?.PhotoThumbUrl),

                    DefaultPhotoUrl    = defaultPhotoUrl?.PhotoPreviewUrl,
                    DefaultPhotoCdnUrl = this.ConvertBlobToCdnUrl(defaultPhotoUrl?.PhotoPreviewUrl),

                    MetaDescription = current.MetaDescription
                }
            };

            if (current.SitePageTags != null)
            {
                foreach (var sitePageTag in current.SitePageTags)
                {
                    model.PageContent.Tags.Add(sitePageTag.Tag.Name);
                }

                model.PageContent.Tags = model.PageContent.Tags.OrderBy(x => x).ToList();
            }

            return(model);
        }
예제 #2
0
        private SitePageDisplayModel CreateDisplayModel(SitePageSection sitePageSection, SitePage sitePage)
        {
            var contentModel = this.CreatePageContentModel(sitePageSection, sitePage);
            var comments     = this.BuildComments(sitePage);

            var displayModel = new SitePageDisplayModel(this.cacheService)
            {
                BreadcrumbList  = this.BuildBreadcrumbList(sitePageSection, sitePage),
                PageType        = sitePage.PageType,
                Review          = this.BuildReviewModel(sitePageSection, sitePage),
                PageContent     = contentModel,
                Comments        = comments,
                AllowCommenting = sitePage.AllowsComments,
            };

            displayModel.PostComment.SitePageId = sitePage.SitePageId;

            return(displayModel);
        }
예제 #3
0
        private SitePageDisplayModel CreateDisplayListModel(
            SitePageSection sitePageSection = null,
            SitePage sitePage = null,
            string tagKey     = null,
            int pageNumber    = 1)
        {
            var             displayModel = new SitePageDisplayModel(this.cacheService);
            List <SitePage> pages;
            int             total = 0;

            if (string.IsNullOrWhiteSpace(tagKey))
            {
                var contentModel = this.CreatePageContentModel(sitePageSection, sitePage);

                displayModel = new SitePageDisplayModel(this.cacheService)
                {
                    BreadcrumbList = this.BuildBreadcrumbList(sitePageSection, sitePage),
                    PageType       = sitePage.PageType,
                    Review         = this.BuildReviewModel(sitePageSection, sitePage),
                    PageContent    = contentModel
                };

                pages = this.sitePageRepository.GetLivePageBySection(
                    sitePageSection.SitePageSectionId,
                    pageNumber,
                    PageSize,
                    out total);

                pages = pages.Where(x => x.IsSectionHomePage == false).ToList();
            }
            else
            {
                displayModel.TagKey                      = tagKey;
                displayModel.TagKeyword                  = this.tagRepository.Get(tagKey).Name;
                displayModel.PageContent.Title           = $"{displayModel.TagKeyword} - Pages Tagged";
                displayModel.PageContent.PageHeader      = displayModel.PageContent.Title;
                displayModel.PageContent.MetaDescription = $"Pages which are tagged {displayModel.TagKeyword}";
                displayModel.PageType                    = PageType.PageList;

                pages = this.sitePageRepository.GetLivePageByTag(
                    tagKey,
                    pageNumber,
                    PageSize,
                    out total);
            }

            var pageCount = (double)total / PageSize;

            displayModel.Paging = new SitePagePagingModel()
            {
                CurrentPageNumber = pageNumber,
                PageCount         = (int)Math.Ceiling(pageCount),
                QuantityPerPage   = PageSize,
                Total             = total
            };

            foreach (var page in pages)
            {
                var itemPageModel = this.CreatePageContentModel(page.SitePageSection, page);

                if (itemPageModel.IsIndex)
                {
                    continue;
                }

                displayModel.Items.Add(itemPageModel);
            }

            return(displayModel);
        }