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