Пример #1
0
        /// <summary>
        /// 返回所有liked用户, bool是否还有
        /// </summary>
        /// <param name="noteId"></param>
        /// <param name="isALL"></param>
        /// <param name="hasMoreLikedUser"></param>
        /// <returns></returns>
        public UserAndBlog[] ListLikedUsers(long?noteId, bool isALL, out bool hasMoreLikedUser)
        {
            var    pageSize = 5;//默认前5
            int    skipNum;
            string sortFieldR;

            CommonService.parsePageAndSort(1, pageSize, "CreatedTime", false, out skipNum, out sortFieldR);
            var result = dataContext.BlogLike.Where(b => b.NoteId == noteId).OrderBy(a => a.CreatedTime);

            if (result == null || !result.Any())
            {
                hasMoreLikedUser = false;
                return(null);
            }
            List <BlogLike> allResult = null;
            var             likes     = result.ToList <BlogLike>();
            // 总记录数
            var count = likes.Count();

            if (count < 1)
            {
                hasMoreLikedUser = false;
                return(null);
            }



            if (isALL)
            {
                allResult = (from a in likes
                             orderby a.CreatedTime ascending
                             select a).Skip(skipNum).Take(pageSize).ToList <BlogLike>();
            }
            else
            {
                allResult = (from a in likes
                             orderby a.CreatedTime ascending
                             select a).ToList <BlogLike>();
            }
            // 得到所有userIds
            List <long?> userIds = new List <long?>();

            foreach (var like in likes)
            {
                userIds.Add(like.UserId);
            }
            // 得到用户信息
            var userMap = UserService.MapUserAndBlogByUserIds(userIds.ToArray());

            UserAndBlog[] users = new UserAndBlog[likes.Count];
            for (int i = 0; i < likes.Count; i++)
            {
                users[i] = userMap[likes[i].UserId];
            }

            //todo:ListLikedUsers
            hasMoreLikedUser = (count > pageSize);
            return(users);
        }
Пример #2
0
        /// <summary>
        /// 得到userAndBlog公开信息
        /// </summary>
        /// <param name="userId">用户ID</param>
        /// <returns></returns>
        public UserAndBlog GetUserAndBlog(long?userId)
        {
            var user     = this.GetUserInfo(userId);
            var userBlog = BlogService.GetUserBlog(userId);

            var userAndBlog = new UserAndBlog()
            {
                UserId    = user.UserId,
                Username  = user.Username,
                Email     = user.Email,
                Logo      = user.Logo,
                BlogTitle = userBlog.Title,
                BlogLogo  = userBlog.Logo,
                BlogUrl   = BlogService.GetUserBlogUrl(userBlog, user.Username),
                BlogUrls  = BlogService.GetBlogUrls(userBlog, user)
            };

            return(userAndBlog);
        }