コード例 #1
0
ファイル: WidgetService.cs プロジェクト: y7624474/AtomicCms
        public IList <TagCount> GetTagCounts()
        {
            try
            {
                IEnumerable <PageTag> pagesTags = _dataContext.GetPagesTags();
                IEnumerable <IGrouping <CmsTag, PageTag> > groupedTagsPages = from pt in pagesTags
                                                                              group pt by pt.Tag
                                                                              into g
                                                                              select g;
                var groupedTagsCount = from rr in groupedTagsPages
                                       select new { Tag = rr.Key, Count = rr.Count() };

                var tagCount = new List <TagCount>(groupedTagsCount.Count());
                tagCount.AddRange(
                    groupedTagsCount.Select(pageTags => new TagCount {
                    Tag = pageTags.Tag, Count = pageTags.Count
                }));

                return(tagCount);
            }
            catch (Exception ex)
            {
                _log.Exception(ex);
                throw;
            }
        }