public (IEnumerable <UserViewModel>, int) UsersFilter(UserSeachModel search) { var query = from user in Context.Users join userRole in Context.UserRoles on user.Id equals userRole.UserId join role in Context.Roles on userRole.RoleId equals role.Id where ((String.IsNullOrEmpty(search.keyWord) || user.UserName.Contains(search.keyWord)) && (search.UserIds.Count == 0 || search.UserIds.Contains(user.Id)) && (search.Roles.Count == 0 || search.Roles.Contains(role.Name))) select new UserViewModel { Id = user.Id, UserName = user.UserName, Email = user.Email, JobTitle = user.JobTitle, CostPerHour = user.CostPerHour, LastLogged = user.LastLogged.Value, Photo = user.Photo, Role = role.Name, }; var count = query.Count(); var data = query.OrderBy(c => c.Id).Skip((search.pageNumber - 1) * search.pageSize).Take(search.pageSize); return(data, count); }
public IResponse GetUsers(UserSeachModel search) { var(result, totalRows) = UOW.Users.UsersFilter(search); response.pagesTotalRows = totalRows; float all_pages = (float)totalRows / search.pageSize; response.pagesTotalNumber = (int)Math.Ceiling(all_pages); response.pageSize = search.pageSize; response.pageNumber = search.pageNumber; response.data = result; return(response); }
public ActionResult UserFilter([FromQuery] UserSeachModel search) { var response = service.GetUsers(search); return(Ok(response)); }