public IEnumerable <IBlogPostWeightedTag> SelectWeightedTags(int weights)
        {
            var serviceContext = Dependencies.GetServiceContext();

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

            var tagCloudData         = new TagCloudData(weights, TagInfo.TagComparer, infos);
            var archivePathGenerator = new WebsiteBlogAggregationArchiveApplicationPathGenerator(Dependencies);

            return(tagCloudData.Select(e => new BlogPostWeightedTag(e.Name, archivePathGenerator.GetTagPath(e.Name), e.TaggedItemCount, e.Weight)));
        }
        public IEnumerable <IBlogArchiveMonth> SelectArchiveMonths()
        {
            var serviceContext = Dependencies.GetServiceContext();

            var counts = serviceContext.FetchBlogPostCountsGroupedByMonthInWebsite(Website.Id);
            var archivePathGenerator = new WebsiteBlogAggregationArchiveApplicationPathGenerator(Dependencies);

            return(counts.Select(c =>
            {
                var month = new DateTime(c.Item1, c.Item2, 1, 0, 0, 0, DateTimeKind.Utc);

                return new BlogArchiveMonth(month, c.Item3, archivePathGenerator.GetMonthPath(month));
            }).OrderByDescending(e => e.Month));
        }