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;
 }