internal RoomData GenerateRoomData(UInt32 RoomId) { if (loadedRoomData.ContainsKey(RoomId)) return (RoomData)loadedRoomData[RoomId]; Logging.WriteLine("Loading Room [" + RoomId + "]"); RoomData Data = new RoomData(); if (IsRoomLoaded(RoomId)) { return GetRoom(RoomId).RoomData; } else { DataRow Row = null; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT * FROM rooms WHERE id = " + RoomId + " LIMIT 1"); Row = dbClient.getRow(); } if (Row == null) { return null; } Data.Fill(Row); loadedRoomData.Add(RoomId, Data); } return Data; }
internal RoomData FetchRoomData(UInt32 RoomId, DataRow dRow) { if (loadedRoomData.ContainsKey(RoomId)) return (RoomData)loadedRoomData[RoomId]; else { RoomData data = new RoomData(); if (IsRoomLoaded(RoomId)) data.Fill(GetRoom(RoomId)); else data.Fill(dRow); loadedRoomData.Add(RoomId, data); return data; } }