public async Task <IActionResult> GetMessagesForUser(string senderId, [FromQuery] MessageParms messageParms) { var a = User.FindFirst(ClaimTypes.NameIdentifier).Value; if (senderId != User.FindFirst(ClaimTypes.NameIdentifier).Value) { return(Unauthorized()); } messageParms.UserId = senderId; var messageFromRepo = await _unitofWork.MessageRepository.GetMessagesForUser(messageParms); var message = _mapper.Map <IEnumerable <MessageToReturnDTO> >(messageFromRepo); return(Ok(message)); }
public async Task <IActionResult> GetMessagesForUser(int userId , [FromQuery] MessageParms messageParms) { if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } messageParms.UserId = userId; var messagesFromRepo = await _repo.GetMessagesForUser(messageParms); var messages = _mapper.Map <IEnumerable <MessageToReturnDto> >(messagesFromRepo); Response.AddPagination(messagesFromRepo.CurrentPage, messagesFromRepo.PageSize , messagesFromRepo.TotalCount, messagesFromRepo.TotalPages); return(Ok(messages)); }
public async Task <PagedList <Message> > GetMessagesForUser(MessageParms messageParms) { var messages = _context.Messages.AsQueryable(); switch (messageParms.MessageContainer) { case "Inbox": messages = messages.Where(u => u.RecipientId == messageParms.UserId && u.RecipientDeleted == false); break; case "Outbox": messages = messages.Where(u => u.SenderId == messageParms.UserId && u.SenderDeleted == false); break; default: messages = messages.Where(u => u.RecipientId == messageParms.UserId && u.IsRead == false && u.RecipientDeleted == false); break; } messages = messages.OrderByDescending(d => d.MessageSent); return(await PagedList <Message> .CreateAsync(messages, messageParms.PageNumber, messageParms.PageSize)); }
public async Task <PagedList <Message> > GetMessagesForUser(MessageParms messageParms) { var messages = _db.Messages.Include(x => x.Sender).ThenInclude(p => p.Photos) .Include(y => y.Receiver).ThenInclude(p => p.Photos).AsQueryable(); switch (messageParms.MessageStatus) { case "Inbox": messages = messages.Where(x => x.ReceiverId == messageParms.UserId && x.ReceiverDeleted == false); break; case "Outbox": messages = messages.Where(x => x.SenderId == messageParms.UserId && x.SenderDeleted == false); break; default: messages = messages.Where(x => x.ReceiverId == messageParms.UserId && x.ReceiverDeleted == false && x.IsRead == false); break; } messages = messages.OrderByDescending(x => x.MessageSentTime); return(await PagedList <Message> .CreteAsync(messages, messageParms.PageNumber, messageParms.PageSize)); }