public GamePlayer ReferencePlayerByName(string PlayerName, IALFADatabase Database)
{
//
// Check if the object is already known first.
//
GamePlayer Player = (from P in Players
where P.PlayerName.Equals(PlayerName, StringComparison.InvariantCultureIgnoreCase)
select P).FirstOrDefault();
if (Player != null)
return Player;
//
// Need to pull the data from the database.
//
if (Database == null)
return null;
Database.ACR_SQLQuery(String.Format(
"SELECT `ID`, `IsDM`, `Name` FROM `players` WHERE `Name` = '{0}'",
Database.ACR_SQLEncodeSpecialChars(PlayerName)));
if (!Database.ACR_SQLFetch())
return null;
Player = new GamePlayer(this);
Player.PlayerId = Convert.ToInt32(Database.ACR_SQLGetData(0));
Player.IsDM = ConvertToBoolean(Database.ACR_SQLGetData(1));
Player.PlayerName = Database.ACR_SQLGetData(2);
InsertNewPlayer(Player, Database);
return Player;
}