/// <summary> /// Fetches the room data. /// </summary> /// <param name="roomId">The room identifier.</param> /// <param name="dRow">The d row.</param> /// <returns>RoomData.</returns> internal RoomData FetchRoomData(uint roomId, DataRow dRow) { if (LoadedRoomData.ContainsKey(roomId)) { LoadedRoomData[roomId].LastUsed = DateTime.Now; return LoadedRoomData[roomId]; } RoomData roomData = new RoomData(); roomData.Fill(dRow); LoadedRoomData.TryAdd(roomId, roomData); return roomData; }
/// <summary> /// Generates the room data. /// </summary> /// <param name="roomId">The room identifier.</param> /// <returns>RoomData.</returns> internal RoomData GenerateRoomData(uint roomId) { if (LoadedRoomData.ContainsKey(roomId)) { LoadedRoomData[roomId].LastUsed = DateTime.Now; return LoadedRoomData[roomId]; } if (IsRoomLoaded(roomId)) return GetRoom(roomId).RoomData; RoomData roomData = new RoomData(); using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) { queryReactor.SetQuery($"SELECT * FROM rooms_data WHERE id = {roomId} LIMIT 1"); DataRow dataRow = queryReactor.GetRow(); if (dataRow == null) return null; roomData.Fill(dataRow); LoadedRoomData.TryAdd(roomId, roomData); } return roomData; }