// Token: 0x06000DC9 RID: 3529 RVA: 0x000341BC File Offset: 0x000323BC internal void AddFolderCountPayload(StoreObjectId folderId, HierarchyNotificationPayload payload) { ExTraceGlobals.NotificationsCallTracer.TraceDebug((long)this.GetHashCode(), "HierarchyNotifier.AddFolderCountPayload Start"); lock (this) { if (this.refreshPayload == null) { this.folderCountTable[folderId] = payload; if (this.folderCountTable.Count > 200) { ExTraceGlobals.NotificationsCallTracer.TraceDebug((long)this.GetHashCode(), "HierarchyNotifier.AddFolderCountPayload Exceeded maxfoldercount"); this.AddRefreshPayload(payload.SubscriptionId); } } } }
private void ProcessHierarchyNotification(QueryNotification notification) { VersionedId versionedId = notification.Row[0] as VersionedId; StoreObjectId storeObjectId = null; if (versionedId != null) { storeObjectId = versionedId.ObjectId; } if (storeObjectId == null || notification.Row[2] == null || notification.Row[3] == null || notification.Row[4] == null || notification.Row[6] == null) { ExTraceGlobals.CoreCallTracer.TraceDebug <SmtpAddress>((long)this.GetHashCode(), "Hierarchy notification has a null folder id or is malformed. User: {0}", base.UserContext.PrimarySmtpAddress); return; } int num = (int)notification.Row[2]; int num2 = (int)notification.Row[3]; if (notification.Row[6] is bool && !(bool)notification.Row[6] && !this.IsAllowedSearchFolder(storeObjectId)) { return; } HierarchyNotificationPayload payloadInstance = this.GetPayloadInstance(storeObjectId); payloadInstance.FolderId = StoreId.StoreIdToEwsId(this.mailboxGuid, storeObjectId); payloadInstance.DisplayName = (string)notification.Row[1]; payloadInstance.ParentFolderId = ((notification.Row[5] != null) ? StoreId.StoreIdToEwsId(this.mailboxGuid, notification.Row[5] as StoreId) : null); payloadInstance.ItemCount = (long)num; payloadInstance.UnreadCount = (long)num2; payloadInstance.SubscriptionId = base.SubscriptionId; payloadInstance.EventType = notification.EventType; if (!(notification.Row[4] is PropertyError)) { string itemClass = (string)notification.Row[4]; StoreObjectType objectType = ObjectClass.GetObjectType(itemClass); payloadInstance.FolderType = objectType; } else { ExTraceGlobals.CoreCallTracer.TraceDebug <SmtpAddress>((long)this.GetHashCode(), "Hierarchy notification received PropertyError for Item Class. User: {0}", base.UserContext.PrimarySmtpAddress); } this.hierarchyNotifier.AddFolderCountPayload(storeObjectId, payloadInstance); }