예제 #1
0
        public Uri GetDestinationAddress(Type messageType, Action <IExchangeConfigurator> configure = null)
        {
            var exchangeName = _messageNameFormatter.GetMessageName(messageType).ToString();
            var isTemporary  = TypeMetadataCache.IsTemporaryMessageType(messageType);
            var address      = new RabbitMqEndpointAddress(_hostAddress, new Uri($"exchange:{exchangeName}?temporary={isTemporary}"));

            var settings = new RabbitMqSendSettings(address);

            configure?.Invoke(settings);

            return(settings.GetSendAddress(_hostAddress));
        }
예제 #2
0
        public Uri GetDestinationAddress(Type messageType, Action <ITopicConfigurator> configure = null)
        {
            var topicName   = _messageNameFormatter.GetMessageName(messageType).ToString();
            var isTemporary = TypeMetadataCache.IsTemporaryMessageType(messageType);
            var address     = new AmazonSqsEndpointAddress(_hostConfiguration.HostAddress, new Uri($"topic:{topicName}?temporary={isTemporary}"));

            var publishSettings = new TopicPublishSettings(address);

            configure?.Invoke(publishSettings);

            return(publishSettings.GetSendAddress(_hostConfiguration.HostAddress));
        }
예제 #3
0
        public Uri GetDestinationAddress(Type messageType, Action <ITopicConfigurator> configure = null)
        {
            var isTemporary = TypeMetadataCache.IsTemporaryMessageType(messageType);

            var durable    = !isTemporary;
            var autoDelete = isTemporary;

            var name = _messageNameFormatter.GetMessageName(messageType).ToString();

            var settings = new TopicSendSettings(name, durable, autoDelete);

            configure?.Invoke(settings);

            return(settings.GetSendAddress(_hostAddress));
        }
예제 #4
0
        public Uri GetDestinationAddress(Type messageType, Action <IQueueConfigurator> configure = null)
        {
            var queueName = _messageNameFormatter.GetMessageName(messageType).ToString();

            var configurator = new QueueConfigurator(queueName);

            if (TypeMetadataCache.IsTemporaryMessageType(messageType))
            {
                configurator.AutoDeleteOnIdle = Defaults.TemporaryAutoDeleteOnIdle;
            }

            configure?.Invoke(configurator);

            return(configurator.GetQueueAddress(_hostAddress));
        }
        public Uri GetDestinationAddress(Type messageType, Action <ITopicConfigurator> configure = null)
        {
            var isTemporary = TypeMetadataCache.IsTemporaryMessageType(messageType);

            _topologyConfiguration.Publish.TryGetPublishAddress(messageType, _hostConfiguration.HostAddress, out var address);

            var settings = new TopicSendSettings(new ActiveMqEndpointAddress(_hostConfiguration.HostAddress, address));

            if (isTemporary)
            {
                settings.AutoDelete = true;
                settings.Durable    = false;
            }

            configure?.Invoke(settings);

            return(settings.GetSendAddress(_hostConfiguration.HostAddress));
        }