示例#1
0
        public static List <CFXEnvelope> EnvelopesFromMessage(Message msg)
        {
            if (msg.Body is byte[])
            {
                byte[]   msgData = msg.Body as byte[];
                CFXCodec codec   = CFXCodec.raw;
                if (string.Compare(msg.Properties.ContentEncoding, "gzip", true) == 0)
                {
                    codec = CFXCodec.gzip;
                }
                msgData = Decode(msgData, codec);

                List <CFXEnvelope> results;

                string jsonData = Encoding.UTF8.GetString(msgData);
                if (IsMessageList(jsonData))
                {
                    results = CFXEnvelope.FromJsonList(jsonData);
                }
                else
                {
                    results = new List <CFXEnvelope>(new CFXEnvelope [] { CFXEnvelope.FromJson(jsonData) });
                }

                return(results);
            }

            throw new ArgumentException("AMQP Message Body does not contain a valid CFX Envelope");
        }
示例#2
0
        public static List <CFXEnvelope> EnvelopesFromMessage(Message msg)
        {
            if (msg.Body is byte[])
            {
                byte[] msgData = msg.Body as byte[];
                if (msg.Properties?.ContentEncoding == "CFX-COMPRESSED")
                {
                    msgData = Decompress(msgData);
                }

                List <CFXEnvelope> results;

                string jsonData = Encoding.UTF8.GetString(msgData);
                if (IsMessageList(jsonData))
                {
                    results = CFXEnvelope.FromJsonList(jsonData);
                }
                else
                {
                    results = new List <CFXEnvelope>(new CFXEnvelope [] { CFXEnvelope.FromJson(jsonData) });
                }

                return(results);
            }

            throw new ArgumentException("AMQP Message Body does not contain a valid CFX Envelope");
        }