public async Task <IList <User> > ListWithParameters(QueryUserResource query) { var users = context.User.AsQueryable(); if (query.StatusId.HasValue && query.StatusId > 0) { users = users.Where(u => u.StatusId == query.StatusId); } if (query.PlanId.HasValue && query.PlanId > 0) { users = users.Where(u => u.PlanId == query.PlanId); } if (query.Name != null) { users = users.Where(u => (u.Name + u.LastName).ToLower().Contains(query.Name.ToLower())); } if (query.Address != null) { users = users.Where(u => u.Address.ToLower().Contains(query.Address.ToLower())); } if (query.Email != null) { users = users.Where(u => u.Email.ToLower().Contains(query.Email)); } return(await users.Skip((query.Page - query.ItemsPerPage) *query.ItemsPerPage) .Take(query.ItemsPerPage).ToListAsync()); }
public async Task <IActionResult> GetAllUser(QueryUserResource queryUserResource) { if (queryUserResource == null) { queryUserResource = new QueryUserResource(); } if (queryUserResource.Page < 1) { queryUserResource.Page = 1; } if (queryUserResource.ItemsPerPage < 1) { queryUserResource.ItemsPerPage = 1; } var users = await userRepository.ListWithParameters(queryUserResource); var resources = mapper.Map <IList <User>, IList <UserResource> >(users); return(Ok(resources)); }