예제 #1
0
        /// <summary>
        /// 获得指定时间内评分最高的文章
        /// </summary>
        /// <param name="ArticleCnt"></param>
        /// <param name="Hours"></param>
        /// <returns></returns>
        public static AsideColumnBody HotArticle(int ArticleCnt, int Hours)
        {
            //评分规则在ArticleListManager编写
            var articles     = Article.GetHoursFirstPageArticleList(Hours);
            var articleBodys = new List <ArticleBody>();

            foreach (var art in articles)
            {
                articleBodys.Add(ArticleListManager.GetArticleBodyById(art.Sn));
            }
            var firstpage = articleBodys.OrderByDescending((x) => { return(x.Score); });
            var titlelist = new AsideColumnBody()
            {
                Title      = Hours + "小时热门文章",
                DetailItem = new List <GenericItem>(),
                HrefBase   = "/ArticlePage/Index?ArticleId="
            };
            int xCnt = 0;

            foreach (var item in firstpage)
            {
                titlelist.DetailItem.Add(new GenericItem()
                {
                    Display = item.ArticleInfo.Title,
                    Cnt     = item.Score,
                    KeyId   = item.ArticleInfo.Sn
                });
                xCnt++;
                if (xCnt == ArticleCnt)
                {
                    break;
                }
            }
            return(titlelist);
        }
예제 #2
0
        /// <summary>
        /// 获得用户BODY
        /// </summary>
        /// <param name="accountId"></param>
        /// <returns></returns>
        public static UserBody GetUserBody(string accountId)
        {
            IMongoQuery x     = Query.EQ(nameof(UserBody.AccountId), accountId);
            var         cache = MongoDbRepository.GetFirstCacheRec <UserBody>(x);

            if (cache != null)
            {
                return(cache);
            }
            UserBody u = new UserBody();

            u.AccountId = accountId;
            u.UserInfo  = UserInfo.GetUserInfoBySn(accountId);

            switch (u.UserInfo.RegisterMethod)
            {
            case GithubAccount.Github:
                u.GitInfo = GithubAccount.GetGithubAccountBySn(u.UserInfo.RegisterAccountID);
                break;

            case QQAccount.QQ:
                u.QQInfo = QQAccount.GetQQAccountBySn(u.UserInfo.RegisterAccountID);
                break;

            default:
                break;
            }

            //获得用户文章列表
            u.ArticleList = new List <ArticleItemBody>();
            var alist = Article.GetListByOwnerId(accountId);

            foreach (var item in alist)
            {
                u.ArticleList.Add(ArticleListManager.GetArticleItemBodyById(item.Sn));
            }
            //关注的人
            u.FocusList = new List <UserInfo>();
            var focuslist = Focus.GetFocus(accountId);

            foreach (var item in focuslist)
            {
                u.FocusList.Add(UserInfo.GetUserInfoBySn(item));
            }
            //跟随的人
            u.FollowList = new List <UserInfo>();
            var followlist = Focus.GetFollow(accountId);

            foreach (var item in followlist)
            {
                u.FollowList.Add(UserInfo.GetUserInfoBySn(item));
            }
            //收藏
            u.StockList = new List <ArticleItemBody>();
            var slist = OwnerTableOperator.GetRecListByOwnerId <Stock>(accountId);

            foreach (var item in slist)
            {
                u.StockList.Add(ArticleListManager.GetArticleItemBodyById(item.ArticleID));
            }
            UserBody.InsertUserBody(u);
            return(u);
        }