Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
        }