public async Task <ActionResult <ListResponse <TwithListViewDto> > > GetList([FromQuery] GetTwithListRequest request) { var query = new GetTwithsListQuery( request.Limit, request.Offset, _identityUserManager.GetCurrentUserId(User) ); return(Ok( new ListResponse <TwithListViewDto>(await CommandQueryDispatcher.SendQueryAsync(query)) )); }
public Task <List <TwithListViewDto> > Handle(GetTwithsListQuery request, CancellationToken cancellationToken) { return(_context.Twiths .OrderByDescending(t => t.CreatedAt) .Take(request.Limit) .Skip(request.Offset) .Select(t => new TwithListViewDto( t.Id, t.Content.Value, (DateTime)t.CreatedAt, new AuthorDto(t.Author), EF.Property <int>(t, "_likesCount"), _context.Likes.Any(l => l.Twith.Id == t.Id && l.Author.Id == request.CurrentUserId) )) .AsNoTracking() .ToListAsync(cancellationToken)); }