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)); }
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)); }
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)); }
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)); }