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