Exemple #1
0
        public IEnumerable <HierarchyLinks> BuildHeirarchyChildLinks(I___BaseTaxonomy taxItem)
        {
            var children = new List <HierarchyLinks>();

            Dictionary <Guid, HierarchyLinks> taxonomyItems = new Dictionary <Guid, HierarchyLinks>();

            foreach (var taxonomy in taxItem.Taxonomies)
            {
                var taxonomyTree = GetTaxonomyHierarchy(taxonomy);

                if (!taxonomyItems.ContainsKey(taxonomyTree.Item1._Id))
                {
                    taxonomyItems.Add(taxonomyTree.Item1._Id, new HierarchyLinks {
                        Text     = taxonomyTree.Item1._Name,
                        Url      = string.Empty,
                        Children = new List <HierarchyLinks>()
                    });
                }

                var folderItem = taxonomyItems[taxonomyTree.Item1._Id];

                foreach (var item in taxonomyTree.Item3)
                {
                    if (!taxonomyItems.ContainsKey(item._Parent._Id))
                    {
                        taxonomyItems.Add(item._Parent._Id, new HierarchyLinks {
                            Text     = item.Item_Name,
                            Url      = SearchTaxonomyUtil.GetSearchUrl(item),
                            Children = new List <HierarchyLinks>()
                        });
                    }

                    var lItem = new HierarchyLinks {
                        Text     = item.Item_Name,
                        Url      = SearchTaxonomyUtil.GetSearchUrl(item),
                        Children = new List <HierarchyLinks>()
                    };

                    if (!taxonomyItems.ContainsKey(item._Id))
                    {
                        taxonomyItems.Add(item._Id, lItem);
                    }
                    var parent = taxonomyItems[item._Parent._Id];
                    var pList  = parent.Children.ToList();
                    if (!pList.Any(a => a.Text.Equals(lItem.Text)))
                    {
                        pList.Add(lItem);
                    }

                    parent.Children = pList;
                }

                if (!children.Any(x => x.Text.Equals(folderItem.Text)))
                {
                    children.Add(folderItem);
                }
            }

            return(children);
        }
Exemple #2
0
        public override object GetFieldValue(I___BaseTaxonomy indexItem)
        {
            if (indexItem?.Taxonomies != null)
            {
                var subjectTaxonomyItems = indexItem.Taxonomies.Where(x => SearchTaxonomyUtil.IsSubjectTaxonomy(x._Path));

                return(SearchTaxonomyUtil.GetHierarchicalFacetFieldValue(subjectTaxonomyItems));
            }
            return(new List <string>());
        }
Exemple #3
0
        public override object GetFieldValue(I___BaseTaxonomy glassItem)
        {
            if (glassItem?.Taxonomies != null)
            {
                var taxonomyItems = glassItem.Taxonomies.Where(x => SearchTaxonomyUtil.IsIndustryTaxonomy(x._Path));

                return(taxonomyItems.Where(x => !string.IsNullOrEmpty(x.Item_Name)).Select(x => x.Item_Name.Trim()).ToList());
            }
            return(new List <string>());
        }
Exemple #4
0
        private IEnumerable <ILinkable> BuildLinkableTaxonomies(IArticle article)
        {
            var taxItems = article.Taxonomies?
                           .Select(x => new LinkableModel
            {
                LinkableText = x.Item_Name,
                LinkableUrl  = SearchTaxonomyUtil.GetSearchUrl(x)
            }).ToList();

            return(taxItems);
        }
        public ArticleTagsViewModel(
            IRenderingItemContext articleRenderingContext)
        {
            ArticleRenderingContext = articleRenderingContext;

            Tags = ArticleRenderingContext.Get <I___BaseTaxonomy>().Taxonomies.Take(3).Select(x => new LinkableModel
            {
                LinkableText = x.Item_Name,
                LinkableUrl  = SearchTaxonomyUtil.GetSearchUrl(x)
            });
        }
Exemple #6
0
        public override object GetFieldValue(I___BaseTaxonomy indexItem)
        {
            if (indexItem?.Taxonomies == null || !indexItem.Taxonomies.Any())
            {
                return(string.Empty);
            }

            HtmlLinkList links = new HtmlLinkList
            {
                Links = indexItem.Taxonomies.Take(3).Select(t => new HtmlLink {
                    Title = t.Item_Name?.Trim() ?? string.Empty, Url = SearchTaxonomyUtil.GetSearchUrl(t)
                }).ToList()
            };

            return(new JavaScriptSerializer().Serialize(links));
        }
Exemple #7
0
        public void Other_Page()
        {
            if (DisplayTitle)
            {
                Topics    = Parameters.Subjects.Select(s => s.Item_Name).ToArray();
                TitleText = GetTitleText();
            }

            if (SeeAllLink != null)
            {
                string url = SearchTaxonomyUtil.GetSearchUrl(Parameters.Subjects.ToArray());
                if (Authors.Count > 0)
                {
                    var appender = (url.Contains("?")) ? "&" : string.Empty;
                    url = $"{url}{appender}author={string.Join(",", Authors)}";
                }
                if (Parameters.Publications?.Count() > 0)
                {
                    var appender = (url.Contains("?")) ? "&" : string.Empty;
                    url = $"{url}{appender}publication={string.Join(";", Parameters.Publications.Select(s => s.Publication_Name))}";
                }
                SeeAllLink.Url = url;
            }
        }