BeiDream.Demo.Service.Roles.RoleService.PagerList C# (CSharp) Метод

PagerList() приватный Метод

private PagerList ( BeiDream.Demo.Domain.Queries.RoleQuery query ) : PagerList
query BeiDream.Demo.Domain.Queries.RoleQuery
Результат PagerList
        private PagerList<Role> PagerList(RoleQuery query)
        {
            if (string.IsNullOrWhiteSpace(query.Order)) //分页必须先进行排序
                query.Order = "Id desc";
            query.TotalCount = _roleRepository.GetAll().Count();
            IQueryable<Role> roles = GetQueryConditions(_roleRepository.GetAll(), query) //where查询条件必须放在排序和分页前,不然生成SQL有BUG
                .OrderByIfOrderNullOrEmpty(query.Order)
                .Skip(query.GetSkipCount())
                .Take(query.PageSize);
            var result = new PagerList<Role>(query);
            result.AddRange(roles.ToList());
            return result;
        }