public async Task <ActionResult <IEnumerable <GroupDto> > > ListGroups(int limit, int offset) { var query = new ListGroupsQuery(limit, offset); var groups = await requestSender.Send(query); return(Ok(groups)); }
public async Task <IReadOnlyList <GroupDto> > Handle(ListGroupsQuery request, CancellationToken cancellationToken) { var account = await accountProvider.GetCurrentAsync(cancellationToken); var groups = await dbContext.Groups .AsNoTracking() .Where(g => g.OwnerId == account.Id) .Where(g => !g.Archived) .OrderBy(g => g.Name) .Skip(request.offset) .Take(request.limit) .Select(g => new GroupDto(g.Id.ToGuid(), g.Name)) .ToListAsync(cancellationToken); return(groups.AsReadOnly()); }