public async Task <PagedList <DirectMessageDto> > GetDirectMessagesForUser(DirectMessageParams directMessageParams) { var query = _context.DirectMessages.OrderByDescending(m => m.TimeSent).AsQueryable(); query = directMessageParams.Container switch { "Inbox" => query.Where(u => u.Reciever.UserName == directMessageParams.Username && u.RecieverDeleted == false), "Outbox" => query.Where(u => u.Sender.UserName == directMessageParams.Username && u.SenderDeleted == false), _ => query.Where(u => u.Reciever.UserName == directMessageParams.Username && u.RecieverDeleted == false && u.TimeRead == null) }; var directMessages = query.ProjectTo <DirectMessageDto>(_mapper.ConfigurationProvider); return(await PagedList <DirectMessageDto> .CreateAsync(directMessages, directMessageParams.PageNumber, directMessageParams.PageSize)); }
public async Task <ActionResult <IEnumerable <DirectMessageDto> > > GetDirectMessagesForUser([FromQuery] DirectMessageParams directMessageParams) { directMessageParams.Username = User.GetUsername(); var directMessages = await _directMessageRepository.GetDirectMessagesForUser(directMessageParams); Response.AddPaginationHeader(directMessages.CurrentPage, directMessages.PageSize, directMessages.TotalCount, directMessages.TotalPages); return(directMessages); }