// Token: 0x060005F5 RID: 1525 RVA: 0x0002D47C File Offset: 0x0002B67C private bool EnlistItem(PropertyArrayProxy itemProperties) { VersionedId versionedId = itemProperties[ItemSchema.Id] as VersionedId; if (versionedId == null) { DumpsterQuotaEnforcer.Tracer.TraceError <DumpsterQuotaEnforcer>((long)this.GetHashCode(), "{0}: We could not get id of this item. Skipping it.", this); return(true); } object obj = itemProperties[ItemSchema.Size]; if (obj == null) { DumpsterQuotaEnforcer.Tracer.TraceError <DumpsterQuotaEnforcer>((long)this.GetHashCode(), "{0}: We could not get size of this item. Skipping it.", this); return(true); } this.deletedItemsSize += (ulong)((long)((int)obj)); this.itemsExpired++; if (base.MailboxDataForTags.QueryBasedHoldEnabled) { ItemData itemData = new ItemData(versionedId, itemProperties.GetProperty <StoreObjectId>(StoreObjectSchema.ParentItemId), ItemData.EnforcerType.DumpsterQuotaEnforcer, itemProperties.GetProperty <int>(ItemSchema.Size)); base.TagExpirationExecutor.AddToDoomedMoveToDiscoveryHoldsList(itemData, false); } else { ItemData itemData2 = new ItemData(versionedId, ItemData.EnforcerType.DumpsterQuotaEnforcer, itemProperties.GetProperty <int>(ItemSchema.Size)); base.TagExpirationExecutor.AddToDoomedHardDeleteList(itemData2, false); } bool flag = this.dumpsterSize - this.deletedItemsSize > this.dumpsterQuota.Value.ToBytes(); if (!flag) { DumpsterQuotaEnforcer.Tracer.TraceDebug((long)this.GetHashCode(), "{0}: Collected sufficient items. dumspterSize={1}, deletedItemsSize={2}, itemId={3}.", new object[] { this, this.dumpsterSize, this.deletedItemsSize, versionedId }); } return(flag); }
// Token: 0x0600061D RID: 1565 RVA: 0x0002EDE0 File Offset: 0x0002CFE0 private void CollectItemsToExpireInNonIpm() { using (IEnumerator <List <object[]> > folderHierarchy = FolderProcessor.GetFolderHierarchy(DefaultFolderType.Configuration, base.MailboxDataForTags.MailboxSession, SupplementExpirationEnforcer.FolderPropertyColumns.PropertyDefinitions)) { while (folderHierarchy != null && folderHierarchy.MoveNext()) { List <object[]> list = folderHierarchy.Current; if (list != null) { SupplementExpirationEnforcer.Tracer.TraceDebug <SupplementExpirationEnforcer>((long)this.GetHashCode(), "{0}: Got folder hierarchy under non-ipm subtree.", this); foreach (object[] rawProperties in list) { PropertyArrayProxy propertyArrayProxy = new PropertyArrayProxy(SupplementExpirationEnforcer.FolderPropertyColumns, rawProperties); if (!this.IsFolderSkippable(propertyArrayProxy)) { VersionedId property = propertyArrayProxy.GetProperty <VersionedId>(FolderSchema.Id); this.ProcessFolderContents(property, ItemQueryType.None); this.ProcessFolderContents(property, ItemQueryType.Associated); } } } } } }