RebusSubscription EnsureSubscription(IDocumentSession session, Type messageType)
        {
            var subscription = session.Load<RebusSubscription>(Key(messageType));
            if (subscription == null)
            {
                var newSubscription = new RebusSubscription
                {
                    Id = Key(messageType)
                };
                session.Store(newSubscription);
                return newSubscription;
            }

            return subscription;
        }
        RebusSubscription EnsureSubscription(IDocumentSession session, Type messageType)
        {
            var subscription = session.Load<RebusSubscription>(Key(messageType));
            if (subscription == null)
            {
                var newSubscription = new RebusSubscription
                {
                    Id = Key(messageType)
                };
                session.Store(newSubscription);
                return newSubscription;
            }

            return subscription;
        }
示例#3
0
        public virtual void Remove(Type eventType, string subscriberInputQueue)
        {
            var table = EnsureTableStorage();

            var subscription      = new RebusSubscription(eventType, subscriberInputQueue);
            var retrieveOperation = TableOperation.Retrieve <RebusSubscription>(subscription.PartitionKey, subscription.RowKey);
            var retrievedResult   = table.Execute(retrieveOperation);

            if (retrievedResult.Result == null)
            {
                return;
            }

            var removeOperation = TableOperation.Delete(retrievedResult.Result as ITableEntity);

            table.Execute(removeOperation);
        }
示例#4
0
        public virtual void Store(Type eventType, string subscriberInputQueue)
        {
            var table = EnsureTableStorage();

            var subscription      = new RebusSubscription(eventType, subscriberInputQueue);
            var retrieveOperation = TableOperation.Retrieve <RebusSubscription>(subscription.PartitionKey, subscription.RowKey);
            var result            = table.Execute(retrieveOperation);

            if (result.Result != null)
            {
                return;
            }

            var createSubscriptionOperation = TableOperation.Insert(subscription);
            var creationOperationResult     = table.Execute(createSubscriptionOperation);

            if (creationOperationResult.Result == null)
            {
                throw new InvalidOperationException("The subscription registration failed.");
            }
        }