Ejemplo n.º 1
0
        public static void ReceiveMessage(MessageHandler messageHandler, Message message)
        {
            var fileID = message.TryGetString( RqstFileID );
            if( fileID == "" )
                fileID = null;  // Optional

            var instance = GetInstance( messageHandler.ConnectionList, connectionID:message.SenderConnectionID, persistantObjectName:fileID );
            if( instance == null )
                throw new ArgumentException( "The PageFile instance has not been created for ConnectionID '" + message.SenderConnectionID + "' and FileID '" + (fileID ?? "<NULL>") + "'" );

            var messageType = message.TryGetString( InMsgTypeKey );
            if( string.IsNullOrEmpty(messageType) )
                throw new ArgumentException( "The message is missing parameter '" + InMsgTypeKey + "'" );
            switch( messageType )
            {
                case InMsgTypeAbort:
                    instance.SetConcurrentOperationsObject( null );  // This will make 'CheckConcurrentOperations()' to fail
                    break;
                default:
                    instance.OnCustomMessageReceived( message, messageType );
                    break;
            }
        }