public SendSettings GetSendSettings(Uri address) { var name = address.AbsolutePath.Substring(1); string[] pathSegments = name.Split('/'); if (pathSegments.Length == 2) { name = pathSegments[1]; } if (name == "*") { throw new ArgumentException("Cannot send to a dynamic address"); } EntityNameValidator.ThrowIfInvalidEntityName(name); var isTemporary = address.Query.GetValueFromQueryString("temporary", false); var durable = address.Query.GetValueFromQueryString("durable", !isTemporary); var autoDelete = address.Query.GetValueFromQueryString("autodelete", isTemporary); var settings = new AmazonSqsSendSettings(name, durable, autoDelete); var bindToQueue = address.Query.GetValueFromQueryString("bind", false); if (bindToQueue) { var queueName = WebUtility.UrlDecode(address.Query.GetValueFromQueryString("queue")); settings.BindToQueue(queueName); } return(settings); }
public Uri GetDestinationAddress(string topicName, Action <ITopicConfigurator> configure = null) { var sendSettings = new AmazonSqsSendSettings(topicName, true, false); configure?.Invoke(sendSettings); return(sendSettings.GetSendAddress(_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 AmazonSqsSendSettings(name, durable, autoDelete); configure?.Invoke(settings); return(settings.GetSendAddress(_hostAddress)); }