Пример #1
0
    public static PagedResults <T> ToPagedList <T>(this IQueryable <T> source,
                                                   PagedParamModel param, Expression <Func <T, bool> > filter = null,
                                                   Func <IQueryable <T>, IOrderedQueryable <T> > orderBy      = null) where T : class
    {
        IQueryable <T> query = source;

        int TotalItems = query.Count();

        if (filter != null)
        {
            query = query.Where(filter);
        }

        int recordsFiltered = query.Count();

        if (orderBy != null)
        {
            query = orderBy(query);
        }

        query = query.Skip(param.PageSize * (param.PageNumber - 1)).Take(param.PageSize);

        var result = new PagedResults <T>()
        {
            PageNumber           = param.PageNumber,
            PageSize             = param.PageSize,
            TotalNumberOfPages   = (int)Math.Ceiling(recordsFiltered / (double)param.PageSize),
            TotalNumberOfRecords = TotalItems,
            TotalRcordsFiltered  = recordsFiltered,
            Users = query.ToList()
        };


        return(result);
    }
Пример #2
0
        public IActionResult GetPage(int pageNumber = 1, int pageSize = 1, string searchFirstName = "")
        {
            PagedParamModel param = new PagedParamModel()
            {
                PageNumber  = pageNumber,
                PageSize    = pageSize,
                searchValue = searchFirstName
            };
            Expression <Func <User, bool> > searchFunc = (s => s.FirstName.ToLower().Contains(searchFirstName.ToLower()));
            var users   = _context.Users.Include("UserSkills").Include("UserSkills.Skill").ToPagedList(param, filter: !string.IsNullOrEmpty(searchFirstName) ? searchFunc : null, orderBy: null);
            var results = _map.Map <PageResultViewModel>(users);

            return(Json(Ok(results)));
        }