private string GetSortValue(SortDefenition sort) { if (sort.IsDesc) { return($"{sort.FieldName} DESC"); } else { return(sort.FieldName); } }
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 }); }