// Token: 0x06000363 RID: 867 RVA: 0x000179D8 File Offset: 0x00015BD8 internal void Invoke(MailboxSession mailboxSession, ElcUserFolderInformation userELCInfo) { EnforcerManager.< > c__DisplayClass4 CS$ < > 8__locals1 = new EnforcerManager.< > c__DisplayClass4(); CS$ < > 8__locals1.mailboxSession = mailboxSession; CS$ < > 8__locals1.< > 4__this = this; EnforcerManager.Tracer.TraceDebug((long)this.GetHashCode(), "{0}: Invoke called.", new object[] { TraceContext.Get() }); EnforcerManager.TracerPfd.TracePfd <int, object>((long)this.GetHashCode(), "PFD IWE {0} {1}: Invoke called.", 32023, TraceContext.Get()); EnforcerManager.< > c__DisplayClass6 CS$ < > 8__locals2 = new EnforcerManager.< > c__DisplayClass6(); CS$ < > 8__locals2.mailboxData = new MailboxDataForFolders(userELCInfo, this.elcAuditLog); try { EnforcerManager.< > c__DisplayClass8 CS$ < > 8__locals3 = new EnforcerManager.< > c__DisplayClass8(); CS$ < > 8__locals3.CS$ < > 8__locals7 = CS$ < > 8__locals2; CS$ < > 8__locals3.CS$ < > 8__locals5 = CS$ < > 8__locals1; CS$ < > 8__locals3.enforcerArray = new EnforcerBase[] { new AutoCopyEnforcer(CS$ < > 8__locals2.mailboxData, this.databaseInfo, this.elcAssistant), new ExpirationEnforcer(CS$ < > 8__locals2.mailboxData, this.elcAssistant) }; CS$ < > 8__locals3.mailboxOwner = CS$ < > 8__locals1.mailboxSession.MailboxOwner; CS$ < > 8__locals3.folderForFilter = null; ILUtil.DoTryFilterCatch(new TryDelegate(CS$ < > 8__locals3, (UIntPtr)ldftn(< Invoke > b__0)), new FilterDelegate(CS$ < > 8__locals3, (UIntPtr)ldftn(< Invoke > b__1)), new CatchDelegate(null, (UIntPtr)ldftn(< Invoke > b__2))); } finally { if (CS$ < > 8__locals2.mailboxData != null) { ((IDisposable)CS$ < > 8__locals2.mailboxData).Dispose(); } } }
// Token: 0x060002C5 RID: 709 RVA: 0x00010ADC File Offset: 0x0000ECDC internal void InvokeInternal(MailboxSession mailboxSession) { try { if (mailboxSession.MailboxOwner.MailboxInfo.IsArchive) { ElcSubAssistant.Tracer.TraceError <ElcFolderSubAssistant, IExchangePrincipal>((long)this.GetHashCode(), "{0}: Mailbox owner {1} is archive mailbox. Skipping MRM version 1.", this, mailboxSession.MailboxOwner); } else { ElcSubAssistant.Tracer.TraceDebug <ElcFolderSubAssistant, IExchangePrincipal>((long)this.GetHashCode(), "{0}: Collecting ELC information for mailbox '{1}'.", this, mailboxSession.MailboxOwner); ElcUserFolderInformation elcUserFolderInformation = new ElcUserFolderInformation(mailboxSession, base.ElcAssistantType.AdCache.GetAllFolders(mailboxSession.MailboxOwner)); try { elcUserFolderInformation.Build(); } catch (ELCNoMatchingOrgFoldersException ex) { ElcSubAssistant.Tracer.TraceDebug <ElcFolderSubAssistant, ELCNoMatchingOrgFoldersException>((long)this.GetHashCode(), "{0}: An org folder attached to this user could not be found in the list of all folders. Exception: {1}. ", this, ex); Globals.Logger.LogEvent(InfoWorkerEventLogConstants.Tuple_InvalidElcDataInAD, null, new object[] { mailboxSession.MailboxOwner, ex.ToString() }); throw; } if (!elcUserFolderInformation.NeedsElcEnforcement()) { ElcSubAssistant.Tracer.TraceDebug <ElcFolderSubAssistant, IExchangePrincipal>((long)this.GetHashCode(), "{0}: Mailbox '{1}' does not require ELC processing.", this, mailboxSession.MailboxOwner); } else { base.ThrowIfShuttingDown(mailboxSession.MailboxOwner); if (this.elcAuditLog.LoggingEnabled) { this.elcAuditLog.Append("Starting to process mailbox: " + mailboxSession.MailboxOwner, base.ElcAssistantType.ToString()); } this.folderProvisioner.Invoke(elcUserFolderInformation); ElcSubAssistant.Tracer.TraceDebug <ElcFolderSubAssistant, IExchangePrincipal>((long)this.GetHashCode(), "{0}: Invoke of FolderProvisioner has been called for mailbox '{1}'.", this, mailboxSession.MailboxOwner); List <AdFolderData> userAdFolders = elcUserFolderInformation.UserAdFolders; if (userAdFolders == null || userAdFolders.Count == 0) { ElcSubAssistant.Tracer.TraceDebug <ElcFolderSubAssistant, IExchangePrincipal>((long)this.GetHashCode(), "{0}: No policies exist in AD for mailbox '{1}'. Skipping this mailbox.", this, mailboxSession.MailboxOwner); } else { ElcSubAssistant.Tracer.TraceDebug <ElcFolderSubAssistant, IExchangePrincipal>((long)this.GetHashCode(), "{0}: Policies exist in AD for mailbox '{1}'. Processing this mailbox.", this, mailboxSession.MailboxOwner); this.enforcerManager.Invoke(mailboxSession, elcUserFolderInformation); } } } } catch (DataValidationException ex2) { ElcSubAssistant.Tracer.TraceError <ElcFolderSubAssistant, DataValidationException, IExchangePrincipal>((long)this.GetHashCode(), "{0}: Invalid data in the AD '{1}' found while processing mailbox '{2}'. Skipping the mailbox.", this, ex2, mailboxSession.MailboxOwner); Globals.Logger.LogEvent(InfoWorkerEventLogConstants.Tuple_InvalidElcDataInAD, null, new object[] { mailboxSession.MailboxOwner, ex2.ToString() }); throw new SkipException(ex2); } }
// Token: 0x06000328 RID: 808 RVA: 0x00013F68 File Offset: 0x00012168 internal MailboxDataForFolders(ElcUserFolderInformation elcUserFolderInformation, ElcAuditLog elcAuditLog) : base(elcUserFolderInformation) { this.userPolicies = elcUserFolderInformation.UserAdFolders; this.elcAuditLog = elcAuditLog; this.folderProcessor = new FolderProcessor(elcUserFolderInformation.MailboxSession, this.userPolicies); }