public async Task <IPagedList <PublicUser> > FindPaginatedPublicUsers(GetPublicUsersQuery query) { return(await GetPublicUserIncludeQueryable() .Where(ToPredicate(query)) .Select(u => ToPublicUser(u)) .FromPaginationQueryAsync(query)); }
public async Task <IList <PublicUser> > FindAllPublicUsers(GetPublicUsersQuery query) { return(await GetPublicUserIncludeQueryable() .Where(ToPredicate(query)) .Select(u => ToPublicUser(u)) .ToListAsync()); }
private static Expression <Func <User, bool> > ToPredicate(GetPublicUsersQuery query) { return(user => !user.IsDeleted && (query.UsernameFilter == null || user.Username.Contains(query.UsernameFilter)) && (query.EmailFilter == null || user.Email.Contains(query.EmailFilter)) && (query.RightIdFilter == null || user.Rights.Any(r => r.Id == query.RightIdFilter)) && (query.WithoutIdsFilter == null || query.WithoutIdsFilter.All(id => id != user.Id))); }
public async Task <IActionResult> GetAllUsers([FromQuery] GetPublicUsersQuery query) { var users = await Mediator.Send(query); var usersWithLinks = users.Select(user => new HateoasResponse <PublicUser>(user, GetLinksForUser(user.Id))); return(Ok(HateoasResponseBuilder.FromPagedList( Url, users.ToPagedListResume(), usersWithLinks.ToList(), nameof(GetAllUsers)))); }