protected UnseenItemNotifier[] GetNotifierList() { UnseenItemNotifier[] result; lock (this.syncNotifierCache) { UnseenItemNotifier[] array = new UnseenItemNotifier[this.notifierCache.Values.Count]; this.notifierCache.Values.CopyTo(array, 0); result = array; } return(result); }
internal void RemoveSubscription(string subscriptionId) { lock (this.syncNotifierCache) { if (this.notifierCache.ContainsKey(subscriptionId)) { UnseenItemNotifier unseenItemNotifier = this.notifierCache[subscriptionId]; unseenItemNotifier.UnregisterWithPendingRequestNotifier(); this.notifierCache.Remove(subscriptionId); } } }
internal string AddMemberSubscription(string subscriptionId, UserMailboxLocator mailboxLocator) { if (this.groupNotificationLocator == null) { throw new InvalidOperationException("Cannot add member subscription before subscribing to store notifications"); } string subscriptionId2 = ModernGroupNotificationLocator.GetSubscriptionId(mailboxLocator); lock (this.syncNotifierCache) { if (!this.notifierCache.ContainsKey(subscriptionId2)) { UnseenItemNotifier unseenItemNotifier = new UnseenItemNotifier(subscriptionId, base.UserContext, subscriptionId2, mailboxLocator); unseenItemNotifier.RegisterWithPendingRequestNotifier(); this.notifierCache.Add(subscriptionId2, unseenItemNotifier); } } return(subscriptionId2); }
public NotifierData(UnseenItemNotifier notifier, ExDateTime lastVisitedDateUTC) { this.Notifier = notifier; this.LastVisitedDateUTC = lastVisitedDateUTC; }