// Construction
 public CLobbyMemberChangeStateOperation( EPersistenceID player_id, ELobbyMemberState state )
 {
     PlayerID = player_id;
     State = state;
 }
        public void Change_Player_State( EPersistenceID player_id, ELobbyID lobby_id, ELobbyMemberState new_state )
        {
            CServerLobby lobby = Get_Lobby( lobby_id );
            if ( lobby == null )
            {
                return;
            }

            ELobbyMemberState old_state = lobby.Get_Member_State( player_id );
            if ( old_state == new_state )
            {
                return;
            }

            CLog.Log( ELoggingChannel.Lobby, ELogLevel.Medium, String.Format( "Player {0} changed state in lobby {1} from {2} to {3}.",
                                                                                                    CConnectedPlayerManager.Get_Player_Log_Name( player_id ),
                                                                                                    Get_Lobby_Log_Description( lobby_id ),
                                                                                                    old_state.ToString(),
                                                                                                    new_state.ToString() ) );

            lobby.Set_Member_State( player_id, new_state );

            CLobbyMemberChangeStateOperation change_state_op = new CLobbyMemberChangeStateOperation( player_id, new_state );
            Send_Message_To_Members( lobby_id, new CLobbyOperationMessage( change_state_op ) );
        }
 // Construction
 public CLobbyChangeMemberStateMessage( ELobbyMemberState state )
     : base()
 {
     State = state;
 }