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()); }
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))); }