public List <MessageResponse> GetBatch(int userId, MessageGetBatchRequest request) { if (userId == request.FriendID) { return(new List <MessageResponse>()); } var list = _context.MessageEntity .Where(x => ((x.SenderID == userId && x.ReceiverID == request.FriendID) || (x.ReceiverID == userId && x.SenderID == request.FriendID)) && x.SentDateTime < request.Timestamp) .OrderByDescending(x => x.SentDateTime) .Take(request.Amount) .Select(x => new MessageResponse { ID = x.ID, SenderID = x.SenderID, ReceiverID = x.ReceiverID, Content = x.SenderID == userId ? x.SenderEncryptedContent : x.ReceiverEncryptedContent, SentDateTime = x.SentDateTime, SeenByReceiver = x.SeenByReceiver }).ToList(); list.Reverse(); return(list); }
public IActionResult GetBatch(MessageGetBatchRequest request) { int?userId = HttpContext.Session.GetInt32("userId"); if (userId == null) { return(StatusCode(440)); } return(Ok(_service.GetBatch((int)userId, request))); }