/// <summary>
        /// 创建消息队列信息并赋基本值
        /// </summary>
        /// <param name="rabbitExchangeInfo">Rabbit交换机信息</param>
        /// <returns>Rabbit消息队列信息</returns>
        public static RabbitMessageQueueInfo ToMessageQueue(this RabbitExchangeInfo rabbitExchangeInfo)
        {
            RabbitMessageQueueInfo model = new RabbitMessageQueueInfo();

            model.Exchange   = rabbitExchangeInfo.Name;
            model.Type       = rabbitExchangeInfo.Type;
            model.Persistent = rabbitExchangeInfo.Persistent;

            return(model);
        }
        /// <summary>
        /// 创建消息队列信息并赋基本值
        /// </summary>
        /// <param name="rabbitExchangeInfo">Rabbit交换机信息</param>
        /// <returns>Rabbit消息队列信息</returns>
        private RabbitMessageQueueInfo CreateBasicProps(RabbitExchangeInfo rabbitExchangeInfo)
        {
            RabbitMessageQueueInfo model = new RabbitMessageQueueInfo();

            model.Exchange   = rabbitExchangeInfo.Name;
            model.Type       = rabbitExchangeInfo.Type;
            model.Persistent = rabbitExchangeInfo.Persistent;

            return(model);
        }
Esempio n. 3
0
        /// <summary>
        /// 从源头查询交换机信息列表
        /// </summary>
        /// <returns>交换机信息列表</returns>
        protected override IList <RabbitExchangeInfo> QueryExchangeInfosFromSource()
        {
            XmlNodeList nodeList = xmlDoc.SelectNodes("exchanges/exchange");

            if (nodeList.IsNullOrCount0())
            {
                return(null);
            }

            IList <RabbitExchangeInfo> exchanges = new List <RabbitExchangeInfo>();

            nodeList.ForEach(x =>
            {
                RabbitExchangeInfo exchange = new RabbitExchangeInfo();
                if (x.Attributes["name"] != null)
                {
                    exchange.Name = x.Attributes["name"].Value;
                }
                if (x.SelectSingleNode("type") != null)
                {
                    exchange.Type = x.SelectSingleNode("type").InnerText;
                }
                if (x.SelectSingleNode("persistent") != null)
                {
                    exchange.Persistent = Convert.ToBoolean(x.SelectSingleNode("persistent").InnerText);
                }

                XmlNodeList xmlQueues = x.SelectNodes("queues/queue");
                if (!xmlQueues.IsNullOrCount0())
                {
                    exchange.Queues = new List <RabbitQueueModel>(xmlQueues.Count);

                    xmlQueues.ForEach(y =>
                    {
                        RabbitQueueModel rabbitQueue = new RabbitQueueModel();
                        if (y.Attributes["name"] != null)
                        {
                            rabbitQueue.Name = y.Attributes["name"].Value;
                        }
                        if (y.SelectSingleNode("routingKeys") != null)
                        {
                            rabbitQueue.RoutingKeys = y.SelectSingleNode("routingKeys").InnerText.Split(',');
                        }
                        if (y.SelectSingleNode("autoDelQueue") != null)
                        {
                            rabbitQueue.AutoDelQueue = Convert.ToBoolean(y.SelectSingleNode("autoDelQueue").InnerText);
                        }
                        if (y.SelectSingleNode("qos") != null)
                        {
                            rabbitQueue.Qos = Convert.ToUInt16(y.SelectSingleNode("qos").InnerText);
                        }

                        exchange.Queues.Add(rabbitQueue);
                    });
                }

                exchanges.Add(exchange);
            });

            return(exchanges);
        }