Esempio n. 1
0
 public async Task <IPagedList <PublicUser> > FindPaginatedPublicUsers(GetPublicUsersQuery query)
 {
     return(await GetPublicUserIncludeQueryable()
            .Where(ToPredicate(query))
            .Select(u => ToPublicUser(u))
            .FromPaginationQueryAsync(query));
 }
Esempio n. 2
0
 public async Task <IList <PublicUser> > FindAllPublicUsers(GetPublicUsersQuery query)
 {
     return(await GetPublicUserIncludeQueryable()
            .Where(ToPredicate(query))
            .Select(u => ToPublicUser(u))
            .ToListAsync());
 }
Esempio n. 3
0
 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))));
        }