Inheritance: ChiakiYu.Core.Data.PagingDto
Example #1
0
        /// <summary>
        ///     获取所有用户分页列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public PagingList<Blog> GetBlogs(GetBlogsInput input)
        {
            var query = _blogRepository.Table;
            if (!string.IsNullOrWhiteSpace(input.NameKeyWords))
                query = query.Where(m => m.Title.Contains(input.NameKeyWords) || m.Summary.Contains(input.NameKeyWords));
            if (input.SortBy.HasValue)
            {
                switch (input.SortBy.Value)
                {
                    case SortBy.CreatedTime:
                        query = query.OrderBy(n => n.Id);
                        break;
                    case SortBy.CreatedTimeDesc:
                        query = query.OrderByDescending(n => n.Id);
                        break;
                    case SortBy.UpdatedTimeDesc:
                        query = query.OrderByDescending(n => n.UpdatedTime);
                        break;
                    case SortBy.CommentCount:
                        query = query.OrderByDescending(n => n.CommentCount);
                        break;
                    case SortBy.HitCount:
                        query = query.OrderByDescending(n => n.HitCount);
                        break;
                    default:
                        query = query.OrderByDescending(n => n.IsTop).ThenByDescending(n => n.Id);
                        break;
                }
            }
            else
            {
                query = query.OrderByDescending(n => n.IsTop).ThenByDescending(n => n.Id);
            }
            var source = query
                .Include(n => n.Author).Skip((input.PageIndex - 1) * input.PageSize)
                .Take(input.PageSize);

            var result = new PagingList<Blog>(source, input.PageIndex, input.PageSize, query.LongCount());
            return result;
        }
Example #2
0
 /// <summary>
 /// 日志首页,列表页
 /// </summary>
 /// <returns></returns>
 public virtual ActionResult Home(int pageSize = 8, int pageIndex = 1, SortBy? sortBy = null)
 {
     var input = new GetBlogsInput
     {
         PageSize = pageSize,
         PageIndex = pageIndex,
         SortBy = sortBy
     };
     var list = _blogService.GetBlogs(input);
     return View(list);
 }