public IActionResult GetListChatByUser(int id)
        {
            var chats = _context.ChatMessages
                        .Include(x => x.Receiver)
                        .Include(x => x.Sender)
                        .Where(x => x.SenderId == id || x.ReceiverId == id)
                        .GroupBy(x => x.RoomId);
            var distinctChats = chats
                                .Select(x => x.LastOrDefault())
                                .ToList();
            var unreadChats = chats
                              .Select(x => x.Count(y => y.ReceiverId == id && !y.IsRead))
                              .ToList();

            return(Ok(ChatMessagesMapping.ChatMessagesResponseMapping(distinctChats, unreadChats, id)));
        }
        public IActionResult GetListMessagesByRoomId(string roomId, int userId)
        {
            var chats = _context.ChatMessages
                        .Include(x => x.Receiver)
                        .Include(x => x.Sender)
                        .Where(x => x.RoomId.Equals(roomId))
                        .ToList();

            var unread = chats.Where(x => x.ReceiverId == userId && !x.IsRead).ToList();

            if (unread != null)
            {
                foreach (var item in unread)
                {
                    item.IsRead = true;
                    _context.ChatMessages.Update(item);
                }
                _context.Commit();
            }
            return(Ok(ChatMessagesMapping.ChatMessagesRoomResponseMapping(chats)));
        }