// Token: 0x06000601 RID: 1537 RVA: 0x0002DB80 File Offset: 0x0002BD80
        protected override void CollectItemsToExpire()
        {
            int num = 0;

            if (base.MailboxDataForTags.HoldCleanupFolderType != DefaultFolderType.None)
            {
                HoldCleanupEnforcer.Tracer.TraceInformation <HoldCleanupEnforcer, DefaultFolderType, string>(32992, (long)this.GetHashCode(), "{0}: Resuming HoldCleanup at folder {1} and InternetMessageId {2}", this, base.MailboxDataForTags.HoldCleanupFolderType, base.MailboxDataForTags.HoldCleanupInternetMessageId);
                num = Array.IndexOf <DefaultFolderType>(HoldCleanupEnforcer.DumpsterFolders, base.MailboxDataForTags.HoldCleanupFolderType);
            }
            int num2 = num;

            try
            {
                for (int i = num; i < HoldCleanupEnforcer.DumpsterFolders.Length; i++)
                {
                    if (!this.CollectItemsInFolder(HoldCleanupEnforcer.DumpsterFolders[i]))
                    {
                        HoldCleanupEnforcer.Tracer.TraceWarning <HoldCleanupEnforcer, DefaultFolderType>((long)this.GetHashCode(), "{0}: CollectItemsToExpire did not complete for folderType {1}.", this, HoldCleanupEnforcer.DumpsterFolders[i]);
                        break;
                    }
                    num2++;
                }
            }
            finally
            {
                StringBuilder stringBuilder = new StringBuilder();
                IOrderedEnumerable <KeyValuePair <string, long> > source = from dirtyPropertyPair in this.dirtyPropertyCount
                                                                           orderby dirtyPropertyPair.Value descending
                                                                           select dirtyPropertyPair;
                foreach (KeyValuePair <string, long> keyValuePair in source.Take(10))
                {
                    stringBuilder.AppendFormat("{0}:  {1}", keyValuePair.Key, keyValuePair.Value);
                    stringBuilder.AppendLine();
                }
                Globals.Logger.LogEvent(base.MailboxDataForTags.ElcUserTagInformation.ADUser.OrganizationId, InfoWorkerEventLogConstants.Tuple_HoldCleanupStatistics, null, new object[]
                {
                    base.MailboxDataForTags.MailboxSession.MailboxOwner,
                    base.MailboxDataForTags.StatisticsLogEntry.NumberOfItemsAnalyzedByHoldCleanupEnforcer,
                    base.MailboxDataForTags.StatisticsLogEntry.NumberOfItemsDeterminedDuplicateByHoldCleanupEnforcer,
                    base.MailboxDataForTags.StatisticsLogEntry.SizeOfItemsDeterminedDuplicateByHoldCleanupEnforcer,
                    base.MailboxDataForTags.StatisticsLogEntry.NumberOfItemsSkippedByHoldCleanupEnforcer,
                    num2 == HoldCleanupEnforcer.DumpsterFolders.Length,
                    stringBuilder
                });
            }
            if (num2 == HoldCleanupEnforcer.DumpsterFolders.Length)
            {
                Exception arg = null;
                if (!ElcMailboxHelper.ClearHoldCleanupWatermarkFAIMessage(base.MailboxDataForTags.MailboxSession.ClientInfoString, base.MailboxDataForTags.MailboxSession.MailboxOwner, out arg))
                {
                    HoldCleanupEnforcer.Tracer.TraceError <HoldCleanupEnforcer, Exception>((long)this.GetHashCode(), "{0}: Unable to clear the watermark due to {1}.", this, arg);
                }
            }
        }