private (List <string> content, List <string> titles) ParseContentPanels(IPublishedContent publishedContent) { var titles = new List <string>(); var content = new List <string>(); var values = _gridHelper.GetValues(publishedContent, ContentPanelAlias, GlobalPanelPickerAlias); foreach (var control in values) { if (control.value != null) { dynamic panel = control.alias == GlobalPanelPickerAlias ? GetContentPanelFromGlobal(control.value) : control.value; if (panel == null) { continue; } string title = panel.title; if (!string.IsNullOrEmpty(title)) { titles.Add(title.StripHtml()); } string desc = panel.description; if (!string.IsNullOrEmpty(desc)) { content.Add(desc.StripHtml()); } } } return(titles, content); }
private IEnumerable <(IContent content, IEnumerable <Guid> tagIds, Guid entityId)> ParseUserTags(IEnumerable <IContent> affectedContent) { foreach (var content in affectedContent) { var tags = new List <Guid>(); if (content.ContentType.Alias == "contentPage") { var json = content.GetValue <string>("grid"); var grid = JObject.Parse(json); var data = _gridHelper.GetValues(grid, "custom.UsersTags").FirstOrDefault(); if (data.value != null) { foreach (var systemTag in data.value.usersTags) { if ((bool)systemTag.selected) { tags.Add(Guid.Parse((string)systemTag.id)); } } } yield return(content, tags, content.Key); } } }
private (List <string> content, List <string> titles, List <UserTagBackofficeViewModel> userTags) ParseContentPanels(IPublishedContent publishedContent) { var titles = new List <string>(); var content = new List <string>(); var userTags = new List <UserTagBackofficeViewModel>(); var values = _gridHelper.GetValues( publishedContent, ContentPanelAlias, GlobalPanelPickerAlias, UsersTagsAlias, ArticleStartAlias, ArticleContinueAlias, UintraGridEditorConstants.DocumentLibraryPanelAlias); foreach (var control in values) { if (control.value != null) { dynamic panel = control.alias == GlobalPanelPickerAlias ? GetContentPanelFromGlobal(control.value) : control.value; if (panel == null) { continue; } string title = panel.title; if (!string.IsNullOrEmpty(title)) { titles.Add(title.StripHtml()); } string desc = panel.description; if (!string.IsNullOrEmpty(desc)) { content.Add(desc.StripHtml()); } dynamic tags = panel.usersTags; if (tags != null) { userTags.AddRange(tags.ToObject <IEnumerable <UserTagBackofficeViewModel> >()); } } } return(titles, content, userTags); }
public void ProcessContentSaving(IContentService sender, SaveEventArgs <IContent> args) { var contentPanels = args.SavedEntities .SelectMany(content => _gridHelper .GetValues(content, GridEditorConstants.ContentPanelAlias) .Select(x => x.value)); var result = contentPanels.All(IsValidContentPanel); if (!result) { var message = new EventMessage("Content panel error", "empty content", EventMessageType.Error); args.CancelOperation(message); } }
private Validation <string, Unit> GridValidation(IEnumerable <IContent> contents) { var panels = contents .SelectMany(content => _gridHelper .GetValues(content, GridEditorConstants.ContentPanelAlias, GridEditorConstants.DocumentLibraryPanelAlias, GridEditorConstants.FaqPanelAlias, GridEditorConstants.GlobalPanelPickerAlias)); return(panels .Select <(string alias, dynamic value), Validation <string, Unit> >(panel => IsValidPanel(panel.alias, panel.value)) .Sequence() .Map(ignore)); }
protected virtual Enum GetCentralFeedTypeFromPlugin(IPublishedContent content, string gridPluginAlias) { var value = _gridHelper .GetValues(content, gridPluginAlias) .FirstOrDefault(t => t.value != null) .value; if (value == null) { return(default(CentralFeedTypeEnum)); } var tabType = int.TryParse(value.tabType.ToString(), out int result) ? _feedTypeProvider[result] : default(CentralFeedTypeEnum); return(tabType); }
protected override Entities.PagePromotion MapInternal(IPublishedContent content) { var pagePromotion = content.Map <Entities.PagePromotion>(); var config = PagePromotionHelper.GetConfig(content); if (config.IsNone) { return(null); } config.IfSome(cfg => Mapper.Map(cfg, pagePromotion)); pagePromotion.Type = Type; pagePromotion.CreatorId = _memberService.GetByUserId(pagePromotion.UmbracoCreatorId.Value).Id; var panelValues = _gridHelper.GetValues(content, CommentsPanelAlias, LikesPanelAlias).ToList(); pagePromotion.Commentable = panelValues.Any(panel => panel.alias == CommentsPanelAlias); pagePromotion.Likeable = panelValues.Any(panel => panel.alias == LikesPanelAlias); return(pagePromotion); }
protected override Entities.PagePromotion MapInternal(IPublishedContent content) { var pagePromotion = content.Map <Entities.PagePromotion>(); var config = PagePromotionHelper.GetConfig(content); if (config == null) { return(null); } Mapper.Map(config, pagePromotion); pagePromotion.Type = Type; pagePromotion.CreatorId = _userService.Get(pagePromotion.UmbracoCreatorId.Value).Id; var panelValues = _gridHelper.GetValues(content, GridEditorConstants.CommentsPanelAlias, GridEditorConstants.LikesPanelAlias).ToList(); pagePromotion.Commentable = panelValues.Any(panel => panel.alias == GridEditorConstants.CommentsPanelAlias); pagePromotion.Likeable = panelValues.Any(panel => panel.alias == GridEditorConstants.LikesPanelAlias); return(pagePromotion); }
private bool ContainsGlobalPanel(IPublishedContent content, IContent globalPanel) { return(_gridHelper .GetValues(content, GridEditorConstants.GlobalPanelPickerAlias) .Any(t => ContainsGlobalPanel(t.value, globalPanel))); }