/// <summary> /// Method to handle messages sent to the receiece destination through ActiveMQ /// </summary> /// <param name="receivedMsg"></param> private void OnMessage(IMessage receivedMsg) { IBytesMessage message = receivedMsg as IBytesMessage; string messageString = System.Text.Encoding.UTF8.GetString(message.Content); if (PsiMQJson.isValid(messageString)) { PsiMQJson obj = PsiMQJson.FromJson(messageString); this.Out.Post(obj.Content, obj.DateTime); } }
/// <summary> /// Serializes a content string and date time into a json string that can be parsed into /// a PsiMQJson object /// </summary> /// <param name="str">Content String</param> /// <param name="dt">Date Time</param> /// <returns></returns> public static string SerializeString(string str, DateTime dt) { PsiMQJson obj = new PsiMQJson(str, dt); return(JsonConvert.SerializeObject(obj)); }
/// <summary> /// Parses JSON string and creates PsiMQJson object with a content string and Date Time. /// </summary> /// <param name="json">Json string to be parsed</param> /// <returns></returns> public static PsiMQJson FromJson(string json) { PsiMQJson obj = JsonConvert.DeserializeObject <PsiMQJson>(json); return(obj); }
/// <summary> /// Receives a string from upstream in the pipeline. Relays that string to /// the ActiveMQ send destination. /// </summary> /// <param name="str">String to send to send destination</param> /// <param name="e">Pipeline Envelope</param> protected override void Receive(string str, Envelope e) { //Send a message using ActiveMQ server this.producer.Send(PsiMQJson.SerializeString(str, e.OriginatingTime)); }