Esempio n. 1
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);
        }