/// <summary>
        ///  Tries to parse an event.
        /// </summary>
        /// <param name="data"> The data.</param>
        /// <param name="eventData"> The event data.</param>
        /// <returns>true if successful.</returns>
        public bool TryParseEventData(byte[] data, out EventData eventData)
        {
            object obj2;
            int    offset = 2;

            if (GpBinaryByteReaderV17.ReadEventData(data, ref offset, out obj2))
            {
                eventData = (EventData)obj2;
                return(true);
            }
            eventData = null;
            return(false);
        }
        /// <summary>
        ///  Tries to parse an event.
        /// </summary>
        /// <param name="data"> The data.</param>
        /// <param name="cryptoProvider"> The crypto Provider.</param>
        /// <param name="eventData">The event data.</param>
        /// <returns>true if successful.</returns>
        public bool TryParseEventDataEncrypted(byte[] data, ICryptoProvider cryptoProvider, out EventData eventData)
        {
            object obj2;

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

            if (GpBinaryByteReaderV17.ReadEventData(buffer, ref offset, out obj2))
            {
                eventData = (EventData)obj2;
                return(true);
            }
            eventData = null;
            return(false);
        }