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); }
/// <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 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); }
public static CFXEnvelope FromJson(string jsonData) { CFXEnvelope env = CFXJsonSerializer.DeserializeObject <CFXEnvelope>(jsonData); Type tp = Type.GetType(env.MessageName); env.MessageBody = CFXJsonSerializer.DeserializeObject(env.MessageBody.ToString(), tp); return(env); }
public static List <CFXEnvelope> FromJsonList(string jsonData) { List <CFXEnvelope> list = CFXJsonSerializer.DeserializeObject <List <CFXEnvelope> >(jsonData); foreach (CFXEnvelope env in list) { Type tp = Type.GetType(env.MessageName); env.MessageBody = CFXJsonSerializer.DeserializeObject(env.MessageBody.ToString(), tp); } return(list); }
public static CFXEnvelope FromJson(string jsonData) { CFXEnvelope env = CFXJsonSerializer.DeserializeObject <CFXEnvelope>(jsonData); // For backwards compatibility. Older versions of the SDK did not properly decorate the $type of the MessageBody property, // so the message portion had to be deserialized individually, which was inefficient. if (!(env.MessageBody is CFXMessage)) { Type tp = Type.GetType(env.MessageName); env.MessageBody = CFXJsonSerializer.DeserializeObject(env.MessageBody.ToString(), tp); } return(env); }
public static List <CFXEnvelope> FromJsonList(string jsonData) { List <CFXEnvelope> list = CFXJsonSerializer.DeserializeObject <List <CFXEnvelope> >(jsonData); foreach (CFXEnvelope env in list) { // For backwards compatibility. Older versions of the SDK did not properly decorate the $type of the MessageBody property, // so the message portion had to be deserialized individually, which was inefficient. if (!(env.MessageBody is CFXMessage) && !string.IsNullOrWhiteSpace(env.messageName)) { Type tp = Type.GetType(env.messageName); env.MessageBody = CFXJsonSerializer.DeserializeObject(env.MessageBody.ToString(), tp); } } return(list); }
public string ToJson(bool formatted = false) { return(CFXJsonSerializer.SerializeObject(this, formatted)); }
public string ToJson() { return(CFXJsonSerializer.SerializeObject(this)); }
public static T FromBytes <T>(byte [] data) where T : CFXMessage { return(CFXJsonSerializer.DeserializeObject <T>(Encoding.UTF8.GetString(data))); }
public byte[] ToBytes() { return(Encoding.UTF8.GetBytes(CFXJsonSerializer.SerializeObject(this))); }
public static T FromJson <T>(string jsonData) where T : CFXMessage { return(CFXJsonSerializer.DeserializeObject <T>(jsonData)); }