/// <summary> /// Creates a reply message, by switching the target and source and maitaining the previous data bag. /// Also adds info from the previous message. /// <remarks>All file data is not transfered.</remarks> /// </summary> /// <param name="msg">Source message</param> /// <param name="action">Message action</param> /// <returns></returns> public static INyxMessage ReplyWithData(this INyxMessage msg, string action) { var reply = new NyxMessage(msg.Source, action, msg.Target).Set(CoreParamsOriginalMessageId, msg.ShortId()); foreach (var element in msg.Elements) { reply.Set(element.Key, element.Value); } return(reply); }
/// <summary> /// Checks if the message is a response to a message. /// </summary> /// <param name="replyMessage">Possible reply message.</param> /// <param name="message">Message to verify against for checking if is a reply.</param> /// <returns></returns> public static bool IsReplyTo(this INyxMessage replyMessage, INyxMessage message) { return(replyMessage.Has(CoreParamsOriginalMessageId) && replyMessage[CoreParamsOriginalMessageId] == message.ShortId()); }
/// <summary> /// Creates a reply message, by switching the target and source. Also adds info from the previous message. /// <remarks>No data from the original message is maitained.</remarks> /// </summary> /// <param name="msg">Source message</param> /// <param name="action">Message action</param> /// <returns></returns> public static INyxMessage Reply(this INyxMessage msg, string action) { return(new NyxMessage(msg.Source, action, msg.Target).Set(CoreParamsOriginalMessageId, msg.ShortId())); }