public GameServer ReferenceServerById(int ServerId, IALFADatabase Database)
{
//
// Check if the object is already known first.
//
GameServer Server = (from S in Servers
where S.ServerId == ServerId
select S).FirstOrDefault();
if (Server != null)
return Server;
//
// Need to pull the data from the database.
//
if (Database == null)
return null;
Database.ACR_SQLQuery(String.Format(
"SELECT `Name`, `IPAddress`, `IsPublic` FROM `servers` WHERE `ID` = {0}",
ServerId));
if (!Database.ACR_SQLFetch())
return null;
Server = new GameServer(this);
Server.ServerName = Database.ACR_SQLGetData(0);
Server.ServerId = ServerId;
Server.SetHostnameAndPort(Database.ACR_SQLGetData(1));
Server.Public = ConvertToBoolean(Database.ACR_SQLGetData(2));
InsertNewServer(Server, Database);
return Server;
}