private UserPagedDataRequest ParsePagedDataRequest(DataSourceRequest request, UserSearchModel model) { var dataRequest = new UserPagedDataRequest { LastName = model.LastName, PageIndex = request.Page - 1, PageSize = request.PageSize }; switch (model.Status) { case "1": dataRequest.Active = true; break; case "0": dataRequest.Active = false; break; } SortDescriptor sort = request.Sorts.FirstOrDefault(); if (sort != null) { UserSortField sortField; Enum.TryParse(sort.Member, out sortField); dataRequest.SortField = sortField; dataRequest.SortOrder = sort.SortDirection == ListSortDirection.Ascending ? SortOrder.Ascending : SortOrder.Descending; } return(dataRequest); }
public async Task <IPagedList <User> > GetUsersAsync(UserPagedDataRequest request) { var query = _repository.Entities.AsQueryable(); if (!string.IsNullOrWhiteSpace(request.LastName)) { query = query.Where(x => x.LastName.StartsWith(request.LastName)); } if (!string.IsNullOrWhiteSpace(request.RoleName)) { query = query.Where(x => x.Roles.Any(r => r.Name == request.RoleName)); } if (request.Active.HasValue) { query = query.Where(x => x.Active == request.Active.Value); } string orderBy = request.SortField.ToString(); if (QueryHelper.PropertyExists <User>(orderBy)) { query = request.SortOrder == SortOrder.Ascending ? query.OrderByProperty(orderBy) : query.OrderByPropertyDescending(orderBy); } else { query = query.OrderBy(x => x.LastName); } var result = new PagedList <User>(); await result.CreateAsync(query, request.PageIndex, request.PageSize); return(result); }
public async Task <IPagedList <User> > GetUsersAsync(UserPagedDataRequest request) { var query = _context.Users .Include(x => x.UserRoles) .AsQueryable(); if (!string.IsNullOrWhiteSpace(request.LastName)) { query = query.Where(x => x.LastName.StartsWith(request.LastName)); } if (request.RoleId.HasValue) { query = query.Where(x => x.UserRoles.Any(r => r.RoleId == request.RoleId)); } if (request.IsActive.HasValue) { query = query.Where(x => x.IsActive == request.IsActive.Value); } string orderBy = request.SortField.ToString(); if (QueryHelper.PropertyExists <User>(orderBy)) { query = request.SortOrder == SortOrder.Ascending ? query.OrderByProperty(orderBy) : query.OrderByPropertyDescending(orderBy); } else { query = query.OrderBy(x => x.LastLoginDate); } var result = await PagedList <User> .CreateAsync(query, request.PageIndex, request.PageSize); return(result); }
public async Task <IPagedList <User> > GetUsersAsync(UserPagedDataRequest request) {