private CGetPlayerDataPersistenceResponse Handle_Get_Player_Data_Request_Locally( CGetPlayerDataPersistenceRequest request )
        {
            EPersistenceID player_id = EPersistenceID.Invalid;
            if ( !m_KnownPlayers.TryGetValue( request.PlayerName.ToUpper(), out player_id ) )
            {
                return null;
            }

            CPersistentPlayerData player_data = null;
            if ( !m_PlayerDataByID.TryGetValue( player_id, out player_data ) )
            {
                return null;
            }

            return new CGetPlayerDataPersistenceResponse( request.RequestID, player_data );
        }
        private void Handle_Client_Hello_Request( CClientHelloRequest message, ESessionID session_id )
        {
            CGetPlayerDataPersistenceRequest get_data_request = new CGetPlayerDataPersistenceRequest( message.Name );
            get_data_request.Handler = delegate( CPersistenceResponse response )
                {
                    CGetPlayerDataPersistenceResponse get_data_response = response as CGetPlayerDataPersistenceResponse;

                    EPersistenceID player_id = get_data_response.PlayerData.ID;
                    CConnectedPlayerManager.Instance.Add_Connected_Player( session_id, player_id, message );
                };

            CDatabaseProxy.Instance.Submit_Request( get_data_request );
        }