Exemple #1
0
        public int GetLastDynamicRegionNumber(Guid pageId)
        {
            ContentRegion crAlias     = null;
            Region        regionAlias = null;

            Root.Models.Content contentAlias = null;
            Root.Models.Content hAlias       = null;
            PageContent         pcAlias      = null;

            // Load all original contents
            var originalFuture = repository
                                 .AsQueryOver(() => crAlias)
                                 .Inner.JoinAlias(() => crAlias.Region, () => regionAlias)
                                 .Inner.JoinAlias(() => crAlias.Content, () => contentAlias)
                                 .Inner.JoinAlias(() => contentAlias.PageContents, () => pcAlias)

                                 .Where(() => pcAlias.Page.Id == pageId)
                                 .And(() => contentAlias.GetType() == typeof(HtmlContent))
                                 .And(() => contentAlias.Status == ContentStatus.Draft ||
                                      contentAlias.Status == ContentStatus.Published)
                                 .And(() => !crAlias.IsDeleted &&
                                      !contentAlias.IsDeleted &&
                                      !pcAlias.IsDeleted)
                                 .SelectList(list => list.SelectGroup(() => regionAlias.RegionIdentifier))
                                 .Future <string>();

            // Load all draft contents
            var draftFuture = repository
                              .AsQueryOver(() => crAlias)
                              .Inner.JoinAlias(() => crAlias.Region, () => regionAlias)
                              .Inner.JoinAlias(() => crAlias.Content, () => hAlias)
                              .Inner.JoinAlias(() => hAlias.Original, () => contentAlias)
                              .Inner.JoinAlias(() => contentAlias.PageContents, () => pcAlias)

                              .Where(() => pcAlias.Page.Id == pageId)
                              .And(() => contentAlias.GetType() == typeof(HtmlContent))
                              .And(() => hAlias.Status == ContentStatus.Draft &&
                                   contentAlias.Status == ContentStatus.Published)
                              .And(() => !crAlias.IsDeleted &&
                                   !contentAlias.IsDeleted &&
                                   !pcAlias.IsDeleted &&
                                   !hAlias.IsDeleted)
                              .SelectList(list => list.SelectGroup(() => regionAlias.RegionIdentifier))
                              .Future <string>();

            var regionIdentifiers = draftFuture.ToList().Concat(originalFuture.ToList()).Distinct();

            return(RegionHelper.GetLastDynamicRegionNumber(regionIdentifiers));
        }
Exemple #2
0
        private ContentHistoryItem Convert(Root.Models.Content content)
        {
            var canRestore = content.Status == ContentStatus.Archived;

            var contentType = content.GetType();

            if (contentType == typeof(HtmlContentWidget) || contentType == typeof(ServerControlWidget))
            {
                canRestore = hasAccessLevel && canRestore && userHasAdministrationRole;
            }
            else
            {
                canRestore = hasAccessLevel && canRestore && userHasPublishRole;
            }

            return(new ContentHistoryItem
            {
                Id = content.Id,
                Version = content.Version,
                StatusName = historyService.GetStatusName(content.Status),
                Status = content.Status,
                ArchivedByUser = content.Status == ContentStatus.Archived ? content.CreatedByUser : null,
                ArchivedOn = content.Status == ContentStatus.Archived ? content.CreatedOn : (DateTime?)null,
                DisplayedFor = content.Status == ContentStatus.Archived && content.PublishedOn != null
                                   ? content.CreatedOn - content.PublishedOn.Value
                                   : (TimeSpan?)null,
                PublishedByUser = content.Status == ContentStatus.Published || content.Status == ContentStatus.Archived ? content.PublishedByUser : null,
                PublishedOn = content.Status == ContentStatus.Published || content.Status == ContentStatus.Archived ? content.PublishedOn : null,
                CreatedOn = content.CreatedOn,
                CanCurrentUserRestoreIt = canRestore
            });
        }