public void MoveErrorMessageToOriginQueue(QueueItem itm)
		{
			if (string.IsNullOrEmpty(itm.Id))
				throw new ArgumentException("MessageId can not be null or empty");

			if (itm.Queue.Type != QueueType.Error)
				throw new ArgumentException("Queue is not of type Error, " + itm.Queue.Type);

			var mgr = new ErrorManager();

			// TODO:
			// Check if Clustered Queue, due if Clustered && NonTransactional, then Error

			mgr.InputQueue = Address.Parse(itm.Queue.Name);

			mgr.ReturnMessageToSourceQueue(itm.Id);
		}
        public void MoveErrorMessageToOriginQueue(QueueItem itm)
        {
            if (string.IsNullOrEmpty(itm.Id))
                throw new ArgumentException("MessageId can not be null or empty");

            if (itm.Queue.Type != QueueType.Error)
                throw new ArgumentException("Queue is not of type Error, " + itm.Queue.Type);

            var mgr = new ErrorManager();

            // TODO:
            // Check if Clustered Queue, due if Clustered && NonTransactional, then Error

            //var deserializer = new XmlMessageSerializer();

            XmlMessageSerializer _serializer = new XmlMessageSerializer();

            using (var stream = new MemoryStream(UTF8Encoding.Default.GetBytes(itm.Content ?? "")))
            {
                var rcx = ReceiveContext.FromBodyStream(stream);
                _serializer.Deserialize(rcx);

                //var query = rcx.DestinationAddress.Query;

                //var errorQueue = rcx.DestinationAddress.OriginalString.Replace(query, "") + "_error";

                //mgr.InputQueue = new EndpointAddress(errorQueue);

                mgr.ReturnMessageToSourceQueue(itm.Id, rcx);
            }
        }
        public async Task MoveAllErrorMessagesToOriginQueue(string errorQueue)
        {
            var mgr = new ErrorManager();

            // TODO:
            // Check if Clustered Queue, due if Clustered && NonTransactional, then Error

            mgr.InputQueue = new EndpointAddress(errorQueue);

            mgr.ReturnAll();
        }
		public void MoveAllErrorMessagesToOriginQueue(string errorQueue)
		{
			var mgr = new ErrorManager();

			// TODO:
			// Check if Clustered Queue, due if Clustered && NonTransactional, then Error

			mgr.InputQueue = Address.Parse(errorQueue);

			mgr.ReturnAll();
		}