// Token: 0x0600145E RID: 5214 RVA: 0x0007C3A4 File Offset: 0x0007A5A4 internal FolderContentChangeNotificationHandler(UserContext userContext, MailboxSession mailboxSession, OwaStoreObjectId contextFolderId, OwaStoreObjectId dataFolderId, QueryResult result, EmailPayload emailPayload, ListViewContents2 listView, PropertyDefinition[] subscriptionProperties, Dictionary <PropertyDefinition, int> propertyMap, SortBy[] sortBy, FolderVirtualListViewFilter folderFilter, bool isConversationView) : base(userContext, mailboxSession) { if (result == null) { throw new ArgumentNullException("result"); } this.listView = listView; this.subscriptionProperties = subscriptionProperties; this.contextFolderId = contextFolderId; this.dataFolderId = dataFolderId; this.result = result; this.payload = emailPayload; this.propertyMap = propertyMap; this.sortBy = sortBy; this.folderFilter = folderFilter; this.isConversationView = isConversationView; this.mailboxSessionDisplayName = mailboxSession.DisplayName; this.InitializeCachedObjectsThatNeedMailboxSession(); }
// 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; } }