/// <summary>
        /// Tries to parse an <see cref="T:Photon.SocketServer.OperationRequest"/>.
        /// </summary>
        /// <param name="data">The raw request data.</param>
        /// <param name="cryptoProvider">An <see cref="T:Photon.SocketServer.Security.ICryptoProvider"/> instance used to decrypt encrypted operation requests.</param>
        /// <param name="operationRequest">The operation request.</param>
        /// <returns>True if request was parsed successfully.</returns>
        public bool TryParseOperationRequestEncrypted(byte[] data, ICryptoProvider cryptoProvider, out OperationRequest operationRequest)
        {
            object obj2;

            if (cryptoProvider == null)
            {
                operationRequest = null;
                return(false);
            }
            byte[] buffer = cryptoProvider.Decrypt(data, 2, data.Length - 2);
            if (buffer == null)
            {
                operationRequest = null;
                return(false);
            }
            if (operationDataLogger.IsDebugEnabled)
            {
                operationDataLogger.DebugFormat("Decrypted data: data=({0} bytes) {1}", new object[] { buffer.Length, BitConverter.ToString(buffer) });
            }
            int offset = 0;

            if (GpBinaryByteReaderV17.ReadOperationRequest(buffer, ref offset, out obj2))
            {
                operationRequest = (OperationRequest)obj2;
                return(true);
            }
            operationRequest = null;
            return(false);
        }
        /// <summary>
        ///  Tries to parse an <see cref="T:Photon.SocketServer.OperationRequest"/>.
        /// </summary>
        /// <param name="data"> The raw request data.</param>
        /// <param name="operationRequest">The operation request.</param>
        /// <returns>True if request was parsed successfully.</returns>
        public bool TryParseOperationRequest(byte[] data, out OperationRequest operationRequest)
        {
            object obj2;
            int    offset = 2;

            if (GpBinaryByteReaderV17.ReadOperationRequest(data, ref offset, out obj2))
            {
                operationRequest = (OperationRequest)obj2;
                return(true);
            }
            operationRequest = null;
            return(false);
        }