Ejemplo n.º 1
0
 private string GetSortValue(SortDefenition sort)
 {
     if (sort.IsDesc)
     {
         return($"{sort.FieldName} DESC");
     }
     else
     {
         return(sort.FieldName);
     }
 }
Ejemplo n.º 2
0
        public async Task <PaginationList <UserEntity> > GetUsersAsync(int page, int pageSize, SortDefenition sort, string filter)
        {
            var query = _ctx.Users.AsQueryable();

            if (!string.IsNullOrWhiteSpace(filter))
            {
                filter = filter.ToLower();
                query  = query.Where(u => u.Email.ToLower().Contains(filter) ||
                                     u.FirstName.ToLower().Contains(filter) ||
                                     u.LastName.ToLower().Contains(filter) ||
                                     u.Login.ToLower().Contains(filter));
            }

            int totalCount = await query.CountAsync();

            query = query.OrderBy(GetSortValue(sort));

            var items = await query
                        .Skip(pageSize *(page - 1))
                        .Take(pageSize)
                        .ToArrayAsync();

            return(new PaginationList <UserEntity>
            {
                Items = items,
                TotalCount = totalCount
            });
        }