Ejemplo n.º 1
0
        /// <summary>
        /// Get a new instance of a publisher on an exchange.
        /// </summary>
        /// <param name="brokerPublishParameters"></param>
        /// <returns>
        /// A ready to publish publisher
        /// </returns>
        /// <exception cref="InvalidConfigurationException">brokerPublishParameters must be of type BrokerPublishParameters</exception>
        public IBrokerPublisher GetPublisher(object brokerPublishParameters)
        {
            BrokerPublishParameter _brokerPublishParameters = brokerPublishParameters as BrokerPublishParameter
                                                              ?? throw new InvalidConfigurationException("brokerPublishParameters must be of type BrokerPublishParameters");

            return(new RabbitBrokerPublisher(this, _brokerPublishParameters));
        }
        /// <summary>
        /// Loads the publisher from connection string.
        /// </summary>
        /// <param name="payload">The payload.</param>
        /// <returns></returns>
        /// <exception cref="InvalidConfigurationException">Failed to load configuration {payload}</exception>
        public static BrokerPublishParameter LoadPublisherFromConnectionString(this string payload)
        {
            var config = new BrokerPublishParameter();

            if (!LoadFromConnectionString <BrokerPublishParameter>(payload, config))
            {
                throw new InvalidConfigurationException($"Failed to load configuration {payload}");
            }
            return(config);
        }
Ejemplo n.º 3
0
        public static IFactoryBroker AddDirect(this IFactoryBroker brokers, string serverName
                                               , string publisherName
                                               , string subscriberName
                                               , string exchangeName
                                               , string queueName
                                               )
        {
            var e = brokers.CheckServerBroker(serverName);

            if (e != null)
            {
                throw e;
            }

            BrokerPublishParameter publisher = brokers.GetConfigurationPublisher(publisherName) as BrokerPublishParameter;

            if (publisher == null)
            {
                brokers.Add(publisher = new BrokerPublishParameter()
                {
                    Name               = publisherName,
                    ServerName         = serverName,
                    ExchangeType       = ExchangeType.DIRECT,
                    ExchangeName       = exchangeName,
                    DefaultRountingKey = queueName
                });
            }
            else
            {
            }

            BrokerSubscriptionParameter subscriber = brokers.GetConfigurationSubscriber(publisherName) as BrokerSubscriptionParameter;

            if (subscriber == null)
            {
                brokers.Add(subscriber = new BrokerSubscriptionParameter()
                {
                    Name             = subscriberName,
                    ServerName       = serverName,
                    ExchangeType     = ExchangeType.DIRECT,
                    ExchangeName     = exchangeName,
                    StorageQueueName = queueName,
                }.AddRoutingKeys(queueName)

                            );
            }

            return(brokers);
        }
Ejemplo n.º 4
0
 public RabbitBrokerPublisher(RabbitBroker broker, BrokerPublishParameter brokerPublishParameters)
 {
     _broker = broker;
     BrokerPublishParameters = brokerPublishParameters;
     ServerConfiguration     = _broker.Configuration;
 }