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)); }
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)); }