Example #1
0
        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());
        }
Example #2
0
        public async Task <ActionResult <ResultOutDto <IEnumerable <User> > > > GetUsers([FromQuery] UserFilterInDto filterOptions)
        {
            var filteredUsers = await _userService.Filter(filterOptions);

            return(Ok(ResultOutDtoBuilder.Success(filteredUsers)));
        }