public TopicSubscriptionHandle CreateTopicSubscription(TopicHandle topic, QueueHandle queue) { var id = GetNextId(); var topicEntity = Topics.Get(topic); var queueEntity = Queues.Get(queue); var binding = new TopicSubscriptionEntity(id, topicEntity, queueEntity); return(TopicSubscriptions.GetOrAdd(binding)); }
public TopicSubscriptionHandle CreateTopicSubscription(TopicHandle source, TopicHandle destination) { var id = GetNextId(); var sourceEntity = Topics.Get(source); var destinationEntity = Topics.Get(destination); var binding = new TopicSubscriptionEntity(id, sourceEntity, destinationEntity); return(TopicSubscriptions.GetOrAdd(binding)); }
public TopicSubscriptionHandle CreateTopicSubscription(TopicHandle source, TopicHandle destination, SubscriptionDescription subscriptionDescription) { var sourceEntity = Topics.Get(source); var destinationEntity = Topics.Get(destination); if (sourceEntity.TopicDescription.EnablePartitioning) { destinationEntity.TopicDescription.EnablePartitioning = true; } var subscriptionEntity = new TopicSubscriptionEntity(GetNextId(), GetNextId(), sourceEntity, destinationEntity, subscriptionDescription); return(TopicSubscriptions.GetOrAdd(subscriptionEntity)); }