void ISubscriptionStorage.Unsubscribe(Address address, IEnumerable<MessageType> messageTypes) { using (var context = new SubscriptionServiceContext(client)) { var encodedAddress = EncodeTo64(address.ToString()); foreach (var messageType in messageTypes) { var type = messageType; var query = from s in context.Subscriptions where s.PartitionKey == type.ToString() && s.RowKey == encodedAddress select s; var subscription = query.SafeFirstOrDefault(); if(subscription != null) context.DeleteObject(subscription); context.SaveChangesWithRetries(); } } }
void ISubscriptionStorage.Unsubscribe(Address address, IEnumerable<MessageType> messageTypes) { using (var context = new SubscriptionServiceContext(client)) { var encodedAddress = EncodeTo64(address.ToString()); foreach (var messageType in messageTypes) { var type = messageType; var query = from s in context.Subscriptions where s.PartitionKey == type.ToString() && s.RowKey == encodedAddress select s; var subscription = query .AsTableServiceQuery(context) // Fixes #191 .AsEnumerable() // Fixes #191, continuation not applied on single resultsets eventhough continuation can happen .SafeFirstOrDefault(); if(subscription != null) context.DeleteObject(subscription); context.SaveChangesWithRetries(); } } }
void ISubscriptionStorage.Unsubscribe(Address address, IEnumerable <MessageType> messageTypes) { using (var context = new SubscriptionServiceContext(client)) { var encodedAddress = EncodeTo64(address.ToString()); foreach (var messageType in messageTypes) { var type = messageType; var query = from s in context.Subscriptions where s.PartitionKey == type.ToString() && s.RowKey == encodedAddress select s; var subscription = query.FirstOrDefault(); if (subscription != null) { context.DeleteObject(subscription); } context.SaveChangesWithRetries(); } } }
void ISubscriptionStorage.Unsubscribe(Address address, IEnumerable <MessageType> messageTypes) { using (var context = new SubscriptionServiceContext(client)) { var encodedAddress = EncodeTo64(address.ToString()); foreach (var messageType in messageTypes) { var type = messageType; var query = from s in context.Subscriptions where s.PartitionKey == type.ToString() && s.RowKey == encodedAddress select s; var subscription = query .AsTableServiceQuery(context) // Fixes #191 .AsEnumerable() // Fixes #191, continuation not applied on single resultsets eventhough continuation can happen .SafeFirstOrDefault(); if (subscription != null) { context.DeleteObject(subscription); } context.SaveChangesWithRetries(); } } }