ACR_ServerCommunicator.ACR_ServerCommunicator.ShowRecordData C# (CSharp) Method

ShowRecordData() private method

This method looks up various data records for a player.
private ShowRecordData ( uint PlayerObject, string Name ) : void
PlayerObject uint Supplies the requesting player's /// object.
Name string Supplies the name to query.
return void
        private void ShowRecordData(uint PlayerObject, string Name)
        {
            //
            // Run the database lookups in the query thread and respond in an
            // asynchronous fashion.
            //

            GetDatabase().ACR_IncrementStatistic("SHOW_RECORD_DATA");

            WorldManager.SignalQueryThreadAction(delegate(IALFADatabase Database)
            {
                int CharacterId = 0;
                int PlayerId = 0;
                string Message;
                string PlayerName = null;

                lock (WorldManager)
                {
                    GamePlayer Player;
                    GameCharacter Character;

                    Player = WorldManager.ReferencePlayerByName(Name, Database);

                    if (Player == null)
                    {
                        Character = WorldManager.ReferenceCharacterByName(Name, Database);

                        if (Character != null)
                        {
                            Player = Character.Player;
                            CharacterId = Character.CharacterId;
                        }
                    }

                    if (Player == null)
                    {
                        WorldManager.EnqueueMessageToPlayer(PlayerObject, String.Format(
                            "{0} is not a recognized player or character name.", Name));
                        return;
                    }

                    PlayerId = Player.PlayerId;
                    PlayerName = Player.Name;
                }

                Database.ACR_SQLQuery(String.Format(
                    "SELECT `players`.`FirstLogin`, " +
                    "`players`.`LastLogin`, " +
                    "`players`.`LastLogout`, " +
                    "`players`.`Logins`, " +
                    "`players`.`TimeOnline`, " +
                    "`players`.`IsMember` " +
                    "FROM `players` WHERE `ID` = {0}",
                    PlayerId));

                if (Database.ACR_SQLFetch() == false)
                {
                    Message = "Internal error querying database.";
                }
                else
                {
                    Message = String.Format(
                        "-- Recorddata for player {0} --\n" +
                        "ID: {1}\n" +
                        "First Login: {2}\n" +
                        "Last Login: {3}\n" +
                        "Last Logout: {4}\n" +
                        "Logins: {5}\n" +
                        "TimeOnline: {6}\n" +
                        "IsMember: {7}",
                        PlayerName,
                        PlayerId,
                        Database.ACR_SQLGetData(0),
                        Database.ACR_SQLGetData(1),
                        Database.ACR_SQLGetData(2),
                        Database.ACR_SQLGetData(3),
                        Database.ACR_SQLGetData(4),
                        Database.ACR_SQLGetData(5));
                }

                if (CharacterId != 0)
                {
                    Database.ACR_SQLQuery(String.Format(
                        "SELECT " +
                        "`characters`.`IsDeleted`, " +
                        "`characters`.`CharacterFileName`, " +
                        "`characters`.`RetiredStatus`, " +
                        "`characters`.`AcrVersion` " +
                        "FROM `characters` WHERE `ID` = {0}",
                        CharacterId));

                    if (Database.ACR_SQLFetch() == false)
                    {
                        Message += "\nInternal error querying database.";
                    }
                    else
                    {
                        Message += String.Format(
                            "\n-- Recorddata for character {0} --\n" +
                            "ID: {1}\n" +
                            "IsDeleted: {2}\n" +
                            "CharacterFileName: {3}\n" +
                            "RetiredStatus: {4}\n" +
                            "AcrVersion: {5}\n",
                            Name,
                            CharacterId,
                            Database.ACR_SQLGetData(0),
                            Database.ACR_SQLGetData(1),
                            Database.ACR_SQLGetData(2),
                            Database.ACR_SQLGetData(3));
                    }
                }

                lock (WorldManager)
                {
                    WorldManager.EnqueueMessageToPlayer(PlayerObject, Message);
                }
            });

            WorldManager.SignalIPCEventWakeup();
        }
ACR_ServerCommunicator