Beispiel #1
0
        /// <summary>
        /// Create an acknowledge message of the message
        /// </summary>
        public HorseMessage CreateAcknowledge(string negativeReason = null)
        {
            HorseMessage message = new HorseMessage();

            message.SetMessageId(MessageId);
            message.Type = MessageType.Response;

            if (Type == MessageType.DirectMessage)
            {
                message.HighPriority = true;
                message.SetSource(Target);
                message.SetTarget(Source);
            }
            else
            {
                message.HighPriority = false;
                //target will be queue name
                message.SetTarget(Target);
            }

            if (!string.IsNullOrEmpty(negativeReason))
            {
                message.ContentType = KnownContentTypes.Failed;
                if (!message.HasHeader)
                {
                    message.HasHeader = true;
                }

                if (message.HeadersList == null)
                {
                    message.HeadersList = new List <KeyValuePair <string, string> >();
                }

                message.HeadersList.Add(new KeyValuePair <string, string>(HorseHeaders.NEGATIVE_ACKNOWLEDGE_REASON, negativeReason));
            }
            else
            {
                message.ContentType = Convert.ToUInt16(HorseResultCode.Ok);
            }

            return(message);
        }
Beispiel #2
0
        /// <summary>
        /// Create a response message of the message
        /// </summary>
        public HorseMessage CreateResponse(HorseResultCode status)
        {
            HorseMessage message = new HorseMessage();

            message.HighPriority = Type == MessageType.DirectMessage;
            message.Type         = MessageType.Response;
            message.ContentType  = Convert.ToUInt16(status);
            message.SetMessageId(MessageId);
            message.SetTarget(Type == MessageType.QueueMessage ? Target : Source);

            return(message);
        }