public static Message MessageFromEnvelopes(CFXEnvelope [] envelopes, CFXCodec codec = CFXCodec.raw) { if (envelopes.Length == 1) { return(MessageFromEnvelope(envelopes.First(), codec)); } List <CFXEnvelope> container = new List <CFXEnvelope>(envelopes); byte[] msgData = Encoding.UTF8.GetBytes(CFXJsonSerializer.SerializeObject(container)); msgData = Encode(msgData, codec); Message msg = new Message(msgData); msg.Properties = new Amqp.Framing.Properties { MessageId = Guid.NewGuid().ToString(), CreationTime = DateTime.Now, ContentType = "application/json; charset=\"utf-8\"" }; if (codec == CFXCodec.gzip) { msg.Properties.ContentEncoding = "gzip"; } msg.Header = new Amqp.Framing.Header() { Durable = AmqpCFXEndpoint.DurableMessages.Value }; return(msg); }
public static Message MessageFromEnvelopes(CFXEnvelope [] envelopes, bool compressed = false) { if (envelopes.Length == 1) { return(MessageFromEnvelope(envelopes.First())); } List <CFXEnvelope> container = new List <CFXEnvelope>(envelopes); byte[] msgData = Encoding.UTF8.GetBytes(CFXJsonSerializer.SerializeObject(container)); if (compressed) { msgData = Compress(msgData); } Message msg = new Message(msgData); msg.Properties = new Amqp.Framing.Properties { MessageId = Guid.NewGuid().ToString(), CreationTime = DateTime.Now }; if (compressed) { msg.Properties.ContentEncoding = "CFX-COMPRESSED"; } return(msg); }
/// <summary> /// Converts multiple CFXEnvelope(s) into a single AMQP message /// </summary> /// <param name="envelopes">An array of CFX envelopes containing CFX messages</param> /// <param name="codec">The CODEC to be used</param> /// <param name="subjectFormat">The subject format to be applied. If null, default is used.</param> /// <returns>An AMQP message</returns> public static Message MessageFromEnvelopes(CFXEnvelope [] envelopes, CFXCodec codec = CFXCodec.raw, string subjectFormat = null) { if (envelopes.Length < 1) { return(null); } else if (envelopes.Length == 1) { return(MessageFromEnvelope(envelopes.First(), codec, subjectFormat)); } CFXEnvelope env = envelopes.First(); List <CFXEnvelope> container = new List <CFXEnvelope>(envelopes); byte[] msgData = Encoding.UTF8.GetBytes(CFXJsonSerializer.SerializeObject(container)); msgData = Encode(msgData, codec); Message msg = new Message(); msg.BodySection = new Data() { Binary = msgData }; SetHeaders(msg, env, codec, subjectFormat); return(msg); }
public string ToJson(bool formatted = false) { return(CFXJsonSerializer.SerializeObject(this, formatted)); }
public string ToJson() { return(CFXJsonSerializer.SerializeObject(this)); }
public byte[] ToBytes() { return(Encoding.UTF8.GetBytes(CFXJsonSerializer.SerializeObject(this))); }