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