Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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)));
 }