public async Task <PagedItemResultDto <GetGroupChatMessageDto> > GetMessagesAsync(GetPagedMessagesQueryDto queryDto, CancellationToken ct = default) { _logger.LogInformation("Get group chat messages {ChatId}", queryDto.ChatId); GetPagedMessagesQuery query = _mapper.Map <GetPagedMessagesQuery>(queryDto); PagedItemResultModel <GroupChatMessage> result = await _unitOfWork.GroupChatMessageRepository.GetMessagesAsync(query, ct); return(_mapper.Map <PagedItemResultDto <GetGroupChatMessageDto> >(result)); }
public async Task <PagedItemResultDto <GetPrivateChatMessageDto> > GetMessagesAsync(GetPagedMessagesQueryDto queryDto, CancellationToken ct = default) { _logger.LogInformation("Get private chat messages {ChatId}", queryDto.ChatId); GetPagedMessagesQuery query = _mapper.Map <GetPagedMessagesQuery>(queryDto); PagedItemResultModel <PrivateChatMessage> result = await _unitOfWork.PrivateChatMessageRepository.GetMessagesAsync(query, ct); IImmutableList <GetPrivateChatMessageDto> list = _mapper.Map <ICollection <GetPrivateChatMessageDto> >(result.Items).ToImmutableList(); return(new PagedItemResultDto <GetPrivateChatMessageDto>(list, result.TotalCount)); }
public async Task <PagedItemResultModel <PrivateChatMessage> > GetMessagesAsync(GetPagedMessagesQuery query, CancellationToken ct) { IQueryable <PrivateChatMessage> messagesQuery = DbContext.PrivateChatMessages .Include(t => t.CreatedByUser) .Where(t => t.ChatId == query.ChatId); PagedItemResultModel <PrivateChatMessage> result = new PagedItemResultModel <PrivateChatMessage> { TotalCount = messagesQuery.Count(), Items = await messagesQuery.Skip(query.Skip).Take(query.Take).ToListAsync(ct) }; return(result); }