public void Subscribe(string topicName, string subscriptionName, Action <ISubscriptionConfigurator> callback = null)
        {
            if (string.IsNullOrWhiteSpace(topicName))
            {
                throw new ArgumentException("Value cannot be null or whitespace.", nameof(topicName));
            }

            if (string.IsNullOrWhiteSpace(subscriptionName))
            {
                throw new ArgumentException("Value cannot be null or whitespace.", nameof(subscriptionName));
            }

            subscriptionName = _publishTopology.FormatSubscriptionName(subscriptionName);

            var topicDescription = Defaults.CreateTopicDescription(topicName);

            var subscriptionConfigurator = new SubscriptionConfigurator(topicDescription.Path, subscriptionName);

            callback?.Invoke(subscriptionConfigurator);

            var specification = new SubscriptionConsumeTopologySpecification(topicDescription, subscriptionConfigurator.GetSubscriptionDescription(),
                                                                             subscriptionConfigurator.Rule,
                                                                             subscriptionConfigurator.Filter);

            _specifications.Add(specification);
        }
Esempio n. 2
0
 public SubscriptionConfigurator GetSubscriptionConfigurator(string subscriptionName)
 {
     return(new SubscriptionConfigurator(TopicDescription.Path, _publishTopology.FormatSubscriptionName(subscriptionName)));
 }