コード例 #1
0
 // 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();
         }
     }
 }
コード例 #2
0
 // 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);
     }
 }
コード例 #3
0
 // 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);
 }