// Token: 0x06000FA2 RID: 4002 RVA: 0x00061B7C File Offset: 0x0005FD7C
        public void SubscribeForFolderContentChanges(MailboxSession sessionIn, OwaStoreObjectId contextFolderId, OwaStoreObjectId dataFolderId, QueryResult queryResult, ListViewContents2 listView, PropertyDefinition[] subscriptionProperties, Dictionary <PropertyDefinition, int> propertyMap, SortBy[] sortBy, FolderVirtualListViewFilter folderFilter, bool isConversationView)
        {
            MailboxSession mailboxSession = this.userContext.MailboxSession;

            this.SubscribeForFolderChanges(contextFolderId, sessionIn);
            if (queryResult == null)
            {
                return;
            }
            if (sessionIn == mailboxSession)
            {
                FolderContentChangeNotificationHandler folderContentChangeNotificationHandler = null;
                this.folderContentChangeNotificationHandlers.TryGetValue(contextFolderId, out folderContentChangeNotificationHandler);
                if (folderContentChangeNotificationHandler != null && folderContentChangeNotificationHandler.NeedReinitSubscriptions)
                {
                    this.RemoveFolderContentChangeSubscription(contextFolderId);
                    folderContentChangeNotificationHandler = null;
                }
                if (folderContentChangeNotificationHandler == null)
                {
                    this.ClearOldFolderContentChangeSubscriptions();
                    this.InitializeConnectionDroppedHandler();
                    folderContentChangeNotificationHandler = new FolderContentChangeNotificationHandler(this.userContext, mailboxSession, contextFolderId, dataFolderId, queryResult, this.omnhLoggedUser.EmailPayload, listView, subscriptionProperties, propertyMap, sortBy, folderFilter, isConversationView);
                    try
                    {
                        if (!folderContentChangeNotificationHandler.TrySubscribe(this.connectionDroppedNotificationHandler))
                        {
                            ExTraceGlobals.NotificationsCallTracer.TraceError((long)this.GetHashCode(), "Failed to create a folder content change subscription.");
                            folderContentChangeNotificationHandler.Dispose();
                            folderContentChangeNotificationHandler = null;
                            return;
                        }
                        this.folderContentChangeNotificationHandlers[contextFolderId] = folderContentChangeNotificationHandler;
                        folderContentChangeNotificationHandler = null;
                        return;
                    }
                    finally
                    {
                        if (folderContentChangeNotificationHandler != null)
                        {
                            folderContentChangeNotificationHandler.Dispose();
                            folderContentChangeNotificationHandler = null;
                        }
                    }
                }
                folderContentChangeNotificationHandler.MissedNotifications = false;
            }
        }
        // Token: 0x06000FA7 RID: 4007 RVA: 0x00061D7C File Offset: 0x0005FF7C
        private void RemoveFolderContentChangeSubscription(OwaStoreObjectId folderId)
        {
            FolderContentChangeNotificationHandler folderContentChangeNotificationHandler = this.GetFolderContentChangeNotificationHandler(folderId);

            if (folderContentChangeNotificationHandler != null)
            {
                folderContentChangeNotificationHandler.RemoveSubscription(this.connectionDroppedNotificationHandler);
                folderContentChangeNotificationHandler.Dispose();
                this.folderContentChangeNotificationHandlers.Remove(folderId);
            }
        }
 // Token: 0x06000FA8 RID: 4008 RVA: 0x00061DB8 File Offset: 0x0005FFB8
 private void RemoveAllFolderContentChangeSubscriptions()
 {
     foreach (OwaStoreObjectId contextFolderId in this.folderContentChangeNotificationHandlers.Keys)
     {
         FolderContentChangeNotificationHandler folderContentChangeNotificationHandler = this.GetFolderContentChangeNotificationHandler(contextFolderId);
         if (folderContentChangeNotificationHandler != null)
         {
             folderContentChangeNotificationHandler.RemoveSubscription(this.connectionDroppedNotificationHandler);
             folderContentChangeNotificationHandler.Dispose();
         }
     }
     this.folderContentChangeNotificationHandlers.Clear();
     this.folderContentChangeNotificationHandlers = null;
 }