public PageContentViewModel Execute(InsertHtmlContentRequest request) { var isMasterPage = repository.First <Root.Models.Page>(request.PageId.ToGuidOrDefault()).IsMasterPage; var parentPageContentId = request.ParentPageContentId != null?request.ParentPageContentId.ToGuidOrDefault() : Guid.Empty; var model = new PageContentViewModel { PageId = Guid.Parse(request.PageId), RegionId = Guid.Parse(request.RegionId), ParentPageContentId = parentPageContentId, LiveFrom = DateTime.Today, EnableInsertDynamicRegion = isMasterPage, EditInSourceMode = isMasterPage, CanEditContent = true, EnabledCustomCss = true, EnabledCustomJs = true }; if (model.EnableInsertDynamicRegion) { model.LastDynamicRegionNumber = masterPageService.GetLastDynamicRegionNumber(); } return(model); }
/// <summary> /// Executes the specified request. /// </summary> /// <param name="pageContentId">The page content id.</param> /// <returns></returns> public PageContentViewModel Execute(Guid pageContentId) { var pageContentForEdit = contentService.GetPageContentForEdit(pageContentId); if (pageContentForEdit == null) { throw new EntityNotFoundException(typeof(PageContent), pageContentId); } PageContent pageContent = pageContentForEdit.Item1; HtmlContent content = (HtmlContent)pageContentForEdit.Item2; var model = new PageContentViewModel { Id = pageContent.Id, PageId = pageContent.Page.Id, RegionId = pageContent.Region.Id, ParentPageContentId = pageContent.Parent != null ? pageContent.Parent.Id : Guid.Empty, ContentId = pageContent.Content.Id, ContentName = content.Name, LiveFrom = content.ActivationDate, LiveTo = content.ExpirationDate, PageContent = content.ContentTextMode == ContentTextMode.Html ? content.Html : content.OriginalText, Version = pageContent.Version, ContentVersion = pageContent.Content.Version, CustomCss = content.CustomCss, CustomJs = content.CustomJs, EnabledCustomJs = content.UseCustomJs, EnabledCustomCss = content.UseCustomCss, EditInSourceMode = content.EditInSourceMode, EnableInsertDynamicRegion = pageContent.Page.IsMasterPage, CurrentStatus = content.Status, HasPublishedContent = content.Original != null, ContentTextMode = content.ContentTextMode }; if (configuration.Security.AccessControlEnabled) { var accessRules = Repository.AsQueryable <PageContent>() .Where(x => x.Id == pageContentId && !x.IsDeleted) .Select(f => f.Page) .SelectMany(f => f.AccessRules) .ToList() .Select(x => new UserAccessViewModel(x)).Cast <IAccessRule>().ToList(); SetIsReadOnly(model, accessRules); } model.CanEditContent = SecurityService.IsAuthorized(Context.Principal, RootModuleConstants.UserRoles.EditContent); model.CanDestroyDraft = model.CurrentStatus == ContentStatus.Draft && model.HasPublishedContent && model.CanEditContent; if (model.EnableInsertDynamicRegion) { model.LastDynamicRegionNumber = masterPageService.GetLastDynamicRegionNumber(); } return(model); }