namespace MauMau_Server.Websockets; public class RoomManager : IRoomManager { private static readonly Dictionary Rooms = new(); public string CreateRoom() { var roomId = Guid.NewGuid().ToString(); var room = new Room(); Rooms.Add(roomId, room); return roomId; } public Room GetRoom(string roomId) { return Rooms[roomId]; } public List GetAllRooms() { return Rooms.Keys.ToList(); } public void RemoveRoom(string roomId) { Rooms.Remove(roomId); } public bool RoomExists(string roomId) { return Rooms.ContainsKey(roomId); } public void RemoveAllRooms() { foreach (var room in Rooms.Where(room => room.Value.IsEmpty())) { Rooms.Remove(room.Key); } } } public interface IRoomManager { public string CreateRoom(); public Room GetRoom(string roomId); public List GetAllRooms(); public void RemoveRoom(string roomId); public bool RoomExists(string roomId); public void RemoveAllRooms(); }