Пример #1
0
        /// <summary>
        /// Applies non-null values to queue options
        /// </summary>
        public void ApplyToQueue(QueueOptions target)
        {
            if (!string.IsNullOrEmpty(Acknowledge))
            {
                switch (Acknowledge.Trim().ToLower())
                {
                case "none":
                    target.Acknowledge = QueueAckDecision.None;
                    break;

                case "request":
                    target.Acknowledge = QueueAckDecision.JustRequest;
                    break;

                case "wait":
                    target.Acknowledge = QueueAckDecision.WaitForAcknowledge;
                    break;
                }
            }

            if (!string.IsNullOrEmpty(AutoDestroy))
            {
                switch (AutoDestroy.Trim().ToLower())
                {
                case "disabled":
                    target.AutoDestroy = QueueDestroy.Disabled;
                    break;

                case "no-message":
                    target.AutoDestroy = QueueDestroy.NoMessages;
                    break;

                case "no-consumer":
                    target.AutoDestroy = QueueDestroy.NoConsumers;
                    break;

                case "empty":
                    target.AutoDestroy = QueueDestroy.Empty;
                    break;
                }
            }

            if (AcknowledgeTimeout.HasValue)
            {
                target.AcknowledgeTimeout = TimeSpan.FromMilliseconds(AcknowledgeTimeout.Value);
            }

            if (MessageTimeout.HasValue)
            {
                target.MessageTimeout = TimeSpan.FromMilliseconds(MessageTimeout.Value);
            }

            if (UseMessageId.HasValue)
            {
                target.UseMessageId = UseMessageId.Value;
            }

            if (HideClientNames.HasValue)
            {
                target.HideClientNames = HideClientNames.Value;
            }

            if (Status.HasValue)
            {
                target.Status = Status.Value;
            }

            if (MessageLimit.HasValue)
            {
                target.MessageLimit = MessageLimit.Value;
            }

            if (ClientLimit.HasValue)
            {
                target.ClientLimit = ClientLimit.Value;
            }

            if (DelayBetweenMessages.HasValue)
            {
                target.DelayBetweenMessages = DelayBetweenMessages.Value;
            }

            if (PutBackDelay.HasValue)
            {
                target.PutBackDelay = PutBackDelay.Value;
            }
        }