/// <summary> /// 泛用标签 /// </summary> /// <param name="RankTagDic"></param> /// <param name="TagCntDic"></param> /// <returns></returns> public static AsideColumnBody CreateTagRankAside(RankContain rankContain, int TagCnt) { var titlelist = new AsideColumnBody() { Title = "标签一览", DetailItem = GetGenericItemListByRankContain(rankContain, TagCnt), HrefBase = "/Home/TagList?PageNo=1&TagName=" }; return(titlelist); }
/// <summary> /// 获得Rank /// </summary> /// <param name="rankContain"></param> /// <param name="ItemCount"></param> /// <param name="TransformDisplay"></param> /// <returns></returns> private static List <GenericItem> GetGenericItemListByRankContain(RankContain rankContain, int ItemCount, Func <string, string> TransformDisplay = null) { var DetailItem = new List <GenericItem>(); for (int i = 0; i < Math.Min(ItemCount, rankContain.RankList.Count); i++) { DetailItem.Add(new GenericItem() { Display = TransformDisplay == null ? rankContain.RankList[i].Key : TransformDisplay(rankContain.RankList[i].Key), Cnt = rankContain.RankList[i].Count, KeyId = rankContain.RankList[i].Key }); } return(DetailItem); }
/// <summary> /// 统计 /// </summary> /// <returns></returns> public ActionResult Statistics() { //标签 ViewBag.TagChartName = "/Temp/" + DateTime.Now.ToString("yyyyMMdd") + "_Tag.jpeg"; string tagFilename = Server.MapPath(ViewBag.TagChartName); if (!System.IO.File.Exists(tagFilename)) { var tagDictionary = new Dictionary <string, int>(); for (int i = 0; i < Math.Min(10, TagUtility.TagRankContain.RankList.Count); i++) { tagDictionary.Add(TagUtility.TagRankContain.RankList[i].Key, TagUtility.TagRankContain.RankList[i].Count); } InfraStructure.Chart.ChartHelper.GetColumnChart(tagFilename, "标签数量TOP10", tagDictionary, InfraStructure.Chart.ChartType.Column, 800, 600); } //作者 ViewBag.AuthorChartName = "/Temp/" + DateTime.Now.ToString("yyyyMMdd") + "_Author.jpeg"; string authorFilename = Server.MapPath(ViewBag.AuthorChartName); var userRank = new RankContain(UserManager.UserGroupCntResult()); ViewBag.UserRank = userRank; if (!System.IO.File.Exists(authorFilename)) { var userDictionary = new Dictionary <string, int>(); for (int i = 0; i < Math.Min(10, userRank.RankList.Count); i++) { userDictionary.Add(UserInfo.GetUserNickNameByAccountId(userRank.RankList[i].Key), userRank.RankList[i].Count); } InfraStructure.Chart.ChartHelper.GetColumnChart(authorFilename, "作者TOP10", userDictionary, InfraStructure.Chart.ChartType.Column, 800, 600); } ViewBag.AsideFirst = ASideColumnManager.MostArticleAuthor(10); ViewBag.AsideSecond = ASideColumnManager.MostHotTag(10); ViewBag.AsideThird = ASideColumnManager.HotArticle(10, 72); return(View()); }
/// <summary> /// 加载标签 /// </summary> public static void Init() { Tags = Tag.GetAllTags(); List <string> officeTag = new List <string>(); //必须先初始化 CustomNewTags.Clear(); foreach (var tag in Tags) { officeTag.Add(tag.TagName); } //统计文章,通过首页审核文章 var articles = MongoDbRepository.GetRecList <Article>(); TagRankContain = Statistics(articles); TagTwoComboRankContain = StatisticsTwoCombo(articles); foreach (var article in articles) { //防御代码 if (string.IsNullOrEmpty(article.CustomTagList)) { article.CustomTagList = string.Empty; } article.TagName = GetTagNameList(article.Title, article.CustomTagList); foreach (var tag in article.TagName) { if (!officeTag.Contains(tag) && !CustomNewTags.Contains(tag)) { CustomNewTags.Add(tag); } } Article.UpdateArticle(article); } var topics = Topic.getAllTopic(); foreach (var topic in topics) { //防御代码 if (string.IsNullOrEmpty(topic.CustomTagList)) { topic.CustomTagList = string.Empty; } topic.TagName = GetTagNameList(topic.Title, topic.CustomTagList); foreach (var tag in topic.TagName) { if (!officeTag.Contains(tag) && !CustomNewTags.Contains(tag)) { CustomNewTags.Add(tag); } } Topic.UpdateTopic(topic); } var collections = Collection.getAllSerial(); foreach (var collection in collections) { //防御代码 if (string.IsNullOrEmpty(collection.CustomTagList)) { collection.CustomTagList = string.Empty; } collection.TagName = GetTagNameList(collection.Title, collection.CustomTagList); foreach (var tag in collection.TagName) { if (!officeTag.Contains(tag) && !CustomNewTags.Contains(tag)) { CustomNewTags.Add(tag); } } Collection.UpdateCollection(collection); } }