/// <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); }
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); }
public RabbitBrokerPublisher(RabbitBroker broker, BrokerPublishParameter brokerPublishParameters) { _broker = broker; BrokerPublishParameters = brokerPublishParameters; ServerConfiguration = _broker.Configuration; }