Exemplo n.º 1
0
        public async Task <IActionResult> GetMessages(int UserId, [FromQuery] MessageParems messageParem)
        {
            if (UserId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }
            messageParem.Userid = UserId;
            var messagesFromRepo = await _repo.GetMessages(messageParem);

            var messageToReturen = _map.Map <IEnumerable <MessageToReturenDto> > (messagesFromRepo);

            Response.AddPagintainHeader(messagesFromRepo.CurrentPage, messagesFromRepo.PageSize, messagesFromRepo.TotalPages, messagesFromRepo.TotalCount);
            return(Ok(messageToReturen));
        }
Exemplo n.º 2
0
        public async Task <PageList <Message> > GetMessages(MessageParems messageParem)
        {
            var message = _Repo.Messages.Include(i => i.Recipient).ThenInclude(p => p.Photos)
                          .Include(i => i.Sender).ThenInclude(p => p.Photos).AsQueryable();

            switch (messageParem.MessageContainer)
            {
            case "Inbox":
                message = message.Where(p => p.RecipientId == messageParem.Userid && p.RecipientDelate != true);
                break;

            case "Outbox":
                message = message.Where(p => p.Senderid == messageParem.Userid && p.SenderDelate != true);
                break;

            default:
                message = message.Where(p => p.RecipientId == messageParem.Userid && p.IsRead == false && p.RecipientDelate != true);
                break;
            }
            message = message.OrderByDescending(p => p.MessageSent);
            return(await PageList <Message> .CreateAsync(message, messageParem.PageSize, messageParem.PageNumber));
        }