protected override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
        {
            var context = PortalContext.Current.ServiceContext;

            var pageTags   = context.GetPageTags().ToList().Select(tag => new PageTagInfo(tag)).Where(tagInfo => tagInfo.TaggedItemCount > 0);
            var eventTags  = context.GetEventTags().ToList().Select(tag => new EventTagInfo(tag)).Where(tagInfo => tagInfo.TaggedItemCount > 0);
            var threadTags = context.GetForumThreadTags().ToList().Select(tag => new ForumThreadTagInfo(tag)).Where(tagInfo => tagInfo.TaggedItemCount > 0);

            IEnumerable <TagCloudDataItem> items = new TagCloudData(
                Owner.NumberOfWeights,
                StringComparer.InvariantCultureIgnoreCase,
                pageTags.Cast <ITagInfo>(),
                eventTags.Cast <ITagInfo>(),
                threadTags.Cast <ITagInfo>()).ToList();

            if (string.Equals(Owner.SortExpression, "TaggedItemCount", StringComparison.InvariantCultureIgnoreCase))
            {
                items = Owner.SortDirection == SortDirection.Descending
                                        ? items.OrderByDescending(item => item.TaggedItemCount)
                                        : items.OrderBy(item => item.TaggedItemCount);
            }
            else
            {
                items = Owner.SortDirection == SortDirection.Descending
                                        ? items.OrderByDescending(item => item.Name)
                                        : items.OrderBy(item => item.Name);
            }

            foreach (var item in items)
            {
                item.CssClass = Owner.WeightCssClassPrefix + item.Weight;
            }

            return(items.ToList());
        }
Beispiel #2
0
        public IEnumerable <IForumThreadWeightedTag> SelectWeightedTags(int weights)
        {
            var serviceContext = Dependencies.GetServiceContext();

            var infos        = SelectTagInfos(serviceContext);
            var tagCloudData = new TagCloudData(weights, TagInfo.TagComparer, infos);

            return(tagCloudData.Select(e => new ForumThreadWeightedTag(e.Name, e.TaggedItemCount, e.Weight)));
        }
        public IEnumerable <IBlogPostWeightedTag> SelectWeightedTags(int weights)
        {
            var serviceContext = BlogDependencies.GetServiceContext();

            var infos = serviceContext.FetchBlogPostTagCounts(Blog.Id)
                        .Select(c => new BlogPostTagInfo(c.Item1, c.Item2));

            var tagCloudData         = new TagCloudData(weights, TagInfo.TagComparer, infos);
            var archivePathGenerator = new BlogArchiveApplicationPathGenerator(BlogDependencies);

            return(tagCloudData.Select(e => new BlogPostWeightedTag(e.Name, archivePathGenerator.GetTagPath(e.Name, Blog), e.TaggedItemCount, e.Weight)));
        }