public async Task <List <User> > Filter(UserFilterInDto filterOptions) { var filtered = _context.Users .Include(u => u.UserRoleAssociations) .Where(u => ( (filterOptions.Registered == null) && (string.IsNullOrWhiteSpace(filterOptions.NameMatch) || u.Name.Contains(filterOptions.NameMatch)) && (filterOptions.RoleId == null || u.UserRoleAssociations.Any(r => r.RoleId == filterOptions.RoleId)) )) .TimeRangeFilter(filterOptions); var ordered = filterOptions.CreateTimeDesc ? filtered.OrderByDescending(u => u.CreateTime) : filtered.OrderBy(u => u.CreateTime); return(await ordered.SkipTakePaging(filterOptions).ToListAsync()); }
public async Task <ActionResult <ResultOutDto <IEnumerable <User> > > > GetUsers([FromQuery] UserFilterInDto filterOptions) { var filteredUsers = await _userService.Filter(filterOptions); return(Ok(ResultOutDtoBuilder.Success(filteredUsers))); }