// Token: 0x060003F6 RID: 1014 RVA: 0x0001C798 File Offset: 0x0001A998 private bool InvokeInternal(MailboxDataForTags mailboxDataForTags) { TagProvisioner.Tracer.TraceDebug <TagProvisioner, IExchangePrincipal>((long)this.GetHashCode(), "{0}: TagProvisioner invoked for for mailbox '{1}'.", this, mailboxDataForTags.MailboxSession.MailboxOwner); ElcUserTagInformation elcUserTagInformation = (ElcUserTagInformation)mailboxDataForTags.ElcUserInformation; bool flag = false; TagChange tagChange = new TagChange(); if (mailboxDataForTags.MailboxSession.MailboxOwner.RecipientType != RecipientType.MailUser) { MailboxUpgrader mailboxUpgrader = new MailboxUpgrader(elcUserTagInformation); UpgradeStatus upgradeStatus = mailboxUpgrader.UpgradeIfNecessary(); ADChangeDetector adchangeDetector = new ADChangeDetector(mailboxDataForTags); tagChange = adchangeDetector.Detect(); if (tagChange.ChangeType != ChangeType.None || (upgradeStatus & UpgradeStatus.AppliedFolderTag) != UpgradeStatus.None) { flag = true; elcUserTagInformation.FullCrawlRequired = true; } } else if (elcUserTagInformation.FullCrawlRequired) { flag = true; } mailboxDataForTags.StatisticsLogEntry.IsFullCrawlNeeded = flag; Synchronizer synchronizer = new Synchronizer(mailboxDataForTags, this.elcAssistant, flag); synchronizer.Invoke(); return(elcUserTagInformation.SaveConfigItem(mailboxDataForTags.ArchiveProcessor)); }
// Token: 0x060003C5 RID: 965 RVA: 0x0001A984 File Offset: 0x00018B84 private void MapPolicyForArchive(MailboxDataForTags mailboxDataForTags) { if (mailboxDataForTags.FolderArchiver != null && mailboxDataForTags.MailboxSession.MailboxOwner != null && !mailboxDataForTags.MailboxSession.MailboxOwner.MailboxInfo.IsArchive && mailboxDataForTags.MailboxSession.MailboxOwner.GetArchiveMailbox() != null) { try { mailboxDataForTags.FolderArchiver.SyncHierarchies(); } catch (DataSourceOperationException arg) { ElcSubAssistant.Tracer.TraceError <IExchangePrincipal, MailboxSession, DataSourceOperationException>((long)mailboxDataForTags.MailboxSession.GetHashCode(), "{0}: Failed to connect to the the archive mailbox : {1}.\nError:\n{2}", mailboxDataForTags.MailboxSession.MailboxOwner, mailboxDataForTags.MailboxSession, arg); } catch (ObjectNotFoundException arg2) { ElcSubAssistant.Tracer.TraceDebug <IExchangePrincipal, ObjectNotFoundException>((long)mailboxDataForTags.MailboxSession.GetHashCode(), "{0}: Problems opening the archive.{1}", mailboxDataForTags.MailboxSession.MailboxOwner, arg2); } catch (StorageTransientException arg3) { ElcSubAssistant.Tracer.TraceWarning <IExchangePrincipal, MailboxSession, StorageTransientException>((long)mailboxDataForTags.MailboxSession.GetHashCode(), "{0}: Failed to connect to the the archive mailbox : {1}.\nError:\n{2}", mailboxDataForTags.MailboxSession.MailboxOwner, mailboxDataForTags.MailboxSession, arg3); } catch (StoragePermanentException arg4) { ElcSubAssistant.Tracer.TraceError <IExchangePrincipal, MailboxSession, StoragePermanentException>((long)mailboxDataForTags.MailboxSession.GetHashCode(), "{0}: Failed to connect to the the archive mailbox : {1}.\nError:\n{2}", mailboxDataForTags.MailboxSession.MailboxOwner, mailboxDataForTags.MailboxSession, arg4); } } }
// Token: 0x060003BC RID: 956 RVA: 0x0001A6EC File Offset: 0x000188EC private void InvokeInternal(MailboxSession mailboxSession, MailboxDataForTags mailboxDataForTags) { if (mailboxSession.MailboxOwner.RecipientType == RecipientType.MailUser && !this.FaiExists(mailboxSession)) { ElcSubAssistant.Tracer.TraceDebug <ElcTagSubAssistant, string>((long)this.GetHashCode(), "{0}: FAI doesn't exist for archive mailbox: {1}. Skip it.", this, mailboxSession.MailboxOwner.MailboxInfo.DisplayName); return; } if (!this.CheckForPolicy(mailboxDataForTags)) { if (mailboxDataForTags.LitigationHoldEnabled || mailboxDataForTags.SuspendExpiration) { ElcUserTagInformation elcUserTagInformation = (ElcUserTagInformation)mailboxDataForTags.ElcUserInformation; elcUserTagInformation.EnsureUserConfigurationIsValid(); elcUserTagInformation.SaveConfigItem(mailboxDataForTags.ArchiveProcessor); } return; } bool flag = this.tagProvisioner.Invoke(mailboxDataForTags); if (flag) { this.MapPolicyForArchive(mailboxDataForTags); this.tagEnforcerManager.Invoke(mailboxDataForTags); } this.TrainForAutoTagging(mailboxDataForTags); }
// Token: 0x060005C4 RID: 1476 RVA: 0x0002B94E File Offset: 0x00029B4E internal DiscoveryHoldEnforcer(MailboxDataForTags mailboxDataForTags, SysCleanupSubAssistant sysCleanupSubAssistant) : base(mailboxDataForTags, sysCleanupSubAssistant) { this.AllInPlaceHoldConfiguration = base.MailboxDataForTags.ElcUserInformation.InPlaceHoldConfiguration; if (this.AllInPlaceHoldConfiguration == null) { this.AllInPlaceHoldConfiguration = new List <InPlaceHoldConfiguration>(); } }
// Token: 0x06000429 RID: 1065 RVA: 0x0001DAF7 File Offset: 0x0001BCF7 internal PropertySynchronizerBase(MailboxDataForTags mailboxDataForTags, ElcTagSubAssistant elcAssistant) { this.MailboxDataForTags = mailboxDataForTags; this.ElcAssistant = elcAssistant; this.ElcUserTagInformation = (ElcUserTagInformation)mailboxDataForTags.ElcUserInformation; this.PropertiesToBeDeleted = new List <PropertyDefinition>(); this.PropertiesToBeUpdated = new PropertiesToBeUpdated(); }
// Token: 0x06000648 RID: 1608 RVA: 0x00030511 File Offset: 0x0002E711 public AuditFolderStrategy(MailboxDataForTags mailboxDataForTags, Trace tracer) { if (mailboxDataForTags == null) { throw new ArgumentNullException("mailboxDataForTags"); } this.MailboxDataForTags = mailboxDataForTags; this.Tracer = tracer; }
// Token: 0x0600069F RID: 1695 RVA: 0x000328B8 File Offset: 0x00030AB8 internal EHAHiddenFolderCleanupEnforcer(MailboxDataForTags mailboxDataForTags, SysCleanupSubAssistant sysCleanupSubAssistant) : base(mailboxDataForTags, sysCleanupSubAssistant) { object obj = Globals.ReadRegKey(ElcGlobals.ParameterRegistryKeyPath, ElcGlobals.EHAHiddenFolderCleanupBatchSizeForELC); if (obj is int) { this.maxItemsToDeleteInOneCycle = (int)obj; } }
// Token: 0x060003C7 RID: 967 RVA: 0x0001AB90 File Offset: 0x00018D90 internal ExpirationTagEnforcer(MailboxDataForTags mailboxDataForTags, ElcTagSubAssistant elcTagSubAssistant) : base(mailboxDataForTags, elcTagSubAssistant) { this.tagExpirationExecutor = new TagExpirationExecutor(mailboxDataForTags, elcTagSubAssistant); StoreObjectId defaultFolderId = mailboxDataForTags.MailboxSession.GetDefaultFolderId(DefaultFolderType.DeletedItems); if (defaultFolderId != null) { this.deletedItemsId = defaultFolderId.ProviderLevelItemId; } this.isEhaCustomer = mailboxDataForTags.ElcUserInformation.ProcessEhaMigratedMessages; }
// Token: 0x060003C3 RID: 963 RVA: 0x0001A88C File Offset: 0x00018A8C private bool CheckForPolicy(MailboxDataForTags mailboxDataForTags) { bool policyExists = mailboxDataForTags.ElcUserTagInformation.PolicyExists; if (!policyExists) { ElcSubAssistant.Tracer.TraceDebug <ElcTagSubAssistant, IExchangePrincipal>((long)this.GetHashCode(), "{0}: User '{1}' is not linked to any MRM policy.", this, mailboxDataForTags.MailboxSession.MailboxOwner); mailboxDataForTags.ElcUserTagInformation.DeleteConfigMessage(mailboxDataForTags.ArchiveProcessor); } ElcSubAssistant.Tracer.TraceDebug <ElcTagSubAssistant, IExchangePrincipal, bool>((long)this.GetHashCode(), "{0}: User: '******'. Policy exists: {2}.", this, mailboxDataForTags.MailboxSession.MailboxOwner, policyExists); return(policyExists); }
// Token: 0x06000627 RID: 1575 RVA: 0x0002F4D8 File Offset: 0x0002D6D8 internal void Invoke(MailboxDataForTags mailboxDataForTags, ElcParameters parameters) { SysCleanupEnforcerManager.Tracer.TraceDebug((long)this.GetHashCode(), "{0}: Invoke called.", new object[] { TraceContext.Get() }); ICollection <SysCleanupEnforcerBase> collection; if (parameters != ElcParameters.None) { collection = new List <SysCleanupEnforcerBase>(); if ((parameters & ElcParameters.HoldCleanup) == ElcParameters.HoldCleanup) { collection.Add(new HoldCleanupEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant)); } if ((parameters & ElcParameters.EHAHiddenFolderCleanup) == ElcParameters.EHAHiddenFolderCleanup) { collection.Add(new EHAHiddenFolderCleanupEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant)); } } else { collection = new List <SysCleanupEnforcerBase>(new SysCleanupEnforcerBase[] { new MigrateToArchiveEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant), new DumpsterExpirationEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant), new CalendarLogExpirationEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant), new AuditExpirationEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant), new DumpsterQuotaEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant), new AuditQuotaEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant), new SupplementExpirationEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant), new EHAQuotaWarningEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant), new EHAMigratedMessageMoveEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant), new EHAMigratedMessageDeletionEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant), new DiscoveryHoldEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant) }); if (mailboxDataForTags.HoldCleanupFolderType != DefaultFolderType.None) { collection.Add(new HoldCleanupEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant)); } if (mailboxDataForTags.IsEHAHiddenFolderWatermarkSet()) { collection.Add(new EHAHiddenFolderCleanupEnforcer(mailboxDataForTags, this.sysCleanupSubAssistant)); } } foreach (SysCleanupEnforcerBase sysCleanupEnforcerBase in collection) { this.sysCleanupSubAssistant.ThrowIfShuttingDown(mailboxDataForTags.MailboxSession.MailboxOwner); SysCleanupEnforcerManager.Tracer.TraceDebug <object, SysCleanupEnforcerBase>((long)this.GetHashCode(), "{0}: Calling enabled enforcer '{1}'.", TraceContext.Get(), sysCleanupEnforcerBase); mailboxDataForTags.StatisticsLogEntry.LastProcessedEnforcer = sysCleanupEnforcerBase.GetType().Name; sysCleanupEnforcerBase.Invoke(); } }
// Token: 0x060003BB RID: 955 RVA: 0x0001A6AC File Offset: 0x000188AC internal void Invoke(MailboxSession mailboxSession, MailboxDataForTags mailboxDataForTags) { Stopwatch stopwatch = Stopwatch.StartNew(); try { this.InvokeInternal(mailboxSession, mailboxDataForTags); } finally { mailboxDataForTags.StatisticsLogEntry.TagSubAssistantProcessingTime = stopwatch.ElapsedMilliseconds; } }
// Token: 0x060003F5 RID: 1013 RVA: 0x0001C758 File Offset: 0x0001A958 internal bool Invoke(MailboxDataForTags mailboxDataForTags) { Stopwatch stopwatch = Stopwatch.StartNew(); bool result; try { result = this.InvokeInternal(mailboxDataForTags); } finally { mailboxDataForTags.StatisticsLogEntry.TagProvisionerProcessingTime = stopwatch.ElapsedMilliseconds; } return(result); }
// Token: 0x060003C4 RID: 964 RVA: 0x0001A900 File Offset: 0x00018B00 private void TrainForAutoTagging(MailboxDataForTags mailboxDataForTags) { try { if (mailboxDataForTags.PersonalTagDeleted) { ElcSubAssistant.Tracer.TraceDebug <ElcTagSubAssistant, IExchangePrincipal>((long)this.GetHashCode(), "{0}: Will force a batch train for User '{1}' since a personal tag has been deleted.", this, mailboxDataForTags.MailboxSession.MailboxOwner); } else { ElcSubAssistant.Tracer.TraceDebug <ElcTagSubAssistant, IExchangePrincipal>((long)this.GetHashCode(), "{0}: Will batch train if necessary for User '{1}'.", this, mailboxDataForTags.MailboxSession.MailboxOwner); } } catch (IWShutdownException) { base.ThrowIfShuttingDown(mailboxDataForTags.MailboxSession.MailboxOwner); } }
// Token: 0x0600048A RID: 1162 RVA: 0x000203F8 File Offset: 0x0001E5F8 internal ItemPropertySynchronizer(MailboxDataForTags mailboxDataForTags, ElcTagSubAssistant elcAssistant, Folder folder, Guid?inheritedArchiveGuid, object[] folderProperties) : base(mailboxDataForTags, elcAssistant) { base.Folder = folder; base.FolderProperties = folderProperties; this.inheritedArchiveGuid = inheritedArchiveGuid; if (folder.Id.ObjectId.Equals(base.ElcUserTagInformation.MailboxSession.GetDefaultFolderId(DefaultFolderType.DeletedItems))) { this.folderType = DefaultFolderType.DeletedItems; return; } if (ObjectClass.IsCalendarFolder(folder.ClassName)) { this.folderType = DefaultFolderType.Calendar; return; } if (ObjectClass.IsTaskFolder(folder.ClassName)) { this.folderType = DefaultFolderType.Tasks; } }
// Token: 0x0600043E RID: 1086 RVA: 0x0001DCBC File Offset: 0x0001BEBC internal FolderPropertySynchronizer(MailboxDataForTags mailboxDataForTags, ElcTagSubAssistant elcAssistant, Dictionary <StoreObjectId, Synchronizer.FolderPropertySet> parentFolderIdToPropertyMap, List <object[]> entireFolderList, int indexInTree) : base(mailboxDataForTags, elcAssistant) { this.entireFolderList = entireFolderList; this.indexInTree = indexInTree; base.FolderProperties = entireFolderList[indexInTree]; this.parentFolderIdToPropertyMap = parentFolderIdToPropertyMap; this.originalTagGuid = ElcMailboxHelper.GetGuidFromBytes(base.FolderProperties[2], new Guid?(Guid.Empty), true, base.FolderDisplayName).Value; this.originalRetentionFlags = RetentionAndArchiveFlags.None; if (base.FolderProperties[3] is int) { this.originalRetentionFlags = (RetentionAndArchiveFlags)base.FolderProperties[3]; this.explicitRetention = FlagsMan.IsExplicitSet(this.originalRetentionFlags); this.explicitArchive = FlagsMan.IsExplicitArchiveSet(this.originalRetentionFlags); } this.originalRetentionPeriod = -1; if (base.FolderProperties[4] is int) { this.originalRetentionPeriod = (int)base.FolderProperties[4]; } }
// Token: 0x060003EF RID: 1007 RVA: 0x0001C5F4 File Offset: 0x0001A7F4 private void InvokeInternal(MailboxDataForTags mailboxDataForTags) { TagEnforcerManager.Tracer.TraceDebug((long)this.GetHashCode(), "{0}: Invoke called.", new object[] { TraceContext.Get() }); TagEnforcerManager.TracerPfd.TracePfd <int, object>((long)this.GetHashCode(), "PFD IWE {0} {1}: Invoke called.", 32023, TraceContext.Get()); TagEnforcerBase[] array = new TagEnforcerBase[] { new AutocopyTagEnforcer(mailboxDataForTags, this.elcTagSubAssistant), new ExpirationTagEnforcer(mailboxDataForTags, this.elcTagSubAssistant) }; foreach (TagEnforcerBase tagEnforcerBase in array) { if (tagEnforcerBase.IsEnabled()) { tagEnforcerBase.Invoke(); } } }
// Token: 0x060005FD RID: 1533 RVA: 0x0002D9C4 File Offset: 0x0002BBC4 internal HoldCleanupEnforcer(MailboxDataForTags mailboxDataForTags, SysCleanupSubAssistant sysCleanupSubAssistant) : base(mailboxDataForTags, sysCleanupSubAssistant) { object obj = Globals.ReadRegKey(ElcGlobals.ParameterRegistryKeyPath, ElcGlobals.HoldCleanupBatchSizeForELC); if (obj is int) { this.batchSizeForELC = (int)obj; } obj = Globals.ReadRegKey(ElcGlobals.ParameterRegistryKeyPath, ElcGlobals.HoldCleanupEnabledForELC); if (obj is string && !bool.TryParse((string)obj, out this.enabledForELC)) { this.enabledForELC = true; HoldCleanupEnforcer.Tracer.TraceWarning <HoldCleanupEnforcer, string>((long)this.GetHashCode(), "{0}: {1} override provided but the value is in the wrong format. Defaulting to true.", this, ElcGlobals.HoldCleanupEnabledForELC); } obj = Globals.ReadRegKey(ElcGlobals.ParameterRegistryKeyPath, ElcGlobals.HoldCleanupLogOnly); if (obj is string && !bool.TryParse((string)obj, out this.logOnly)) { this.logOnly = false; HoldCleanupEnforcer.Tracer.TraceWarning <HoldCleanupEnforcer, string>((long)this.GetHashCode(), "{0}: {1} override provided but the value is in the wrong format. Defaulting to false.", this, ElcGlobals.HoldCleanupLogOnly); } }
// Token: 0x060003AB RID: 939 RVA: 0x0001A5A6 File Offset: 0x000187A6 internal TagEnforcerBase(MailboxDataForTags mailboxDataForTags, ElcTagSubAssistant elcTagSubAssistant) { this.MailboxDataForTags = mailboxDataForTags; this.ElcTagSubAssistant = elcTagSubAssistant; }
// Token: 0x060006AC RID: 1708 RVA: 0x000330AB File Offset: 0x000312AB internal MigrateToArchiveEnforcer(MailboxDataForTags mailboxDataForTags, SysCleanupSubAssistant sysCleanupSubAssistant) : base(mailboxDataForTags, sysCleanupSubAssistant) { }
// Token: 0x06000688 RID: 1672 RVA: 0x00031F0A File Offset: 0x0003010A internal EHAMigratedMessageMoveEnforcer(MailboxDataForTags mailboxDataForTags, SysCleanupSubAssistant sysCleanupSubAssistant) : base(mailboxDataForTags, sysCleanupSubAssistant) { }
// Token: 0x0600062E RID: 1582 RVA: 0x0002FA18 File Offset: 0x0002DC18 private void InvokeInternal(MailboxSession mailboxSession, MailboxDataForTags mailboxDataForTags, ElcParameters parameters) { this.sysCleanupEnforcerManager.Invoke(mailboxDataForTags, parameters); this.CheckArchiveWarningQuota(mailboxSession, mailboxDataForTags); }
// Token: 0x060005D7 RID: 1495 RVA: 0x0002C594 File Offset: 0x0002A794 internal DumpsterExpirationEnforcer(MailboxDataForTags mailboxDataForTags, SysCleanupSubAssistant sysCleanupSubAssistant) : base(mailboxDataForTags, sysCleanupSubAssistant) { }
// Token: 0x06000652 RID: 1618 RVA: 0x00030568 File Offset: 0x0002E768 public MailboxAuditFolderStrategy(MailboxDataForTags mailboxDataForTags, Trace tracer) : base(mailboxDataForTags, tracer) { }
// Token: 0x060003B3 RID: 947 RVA: 0x0001A5E6 File Offset: 0x000187E6 internal AutocopyTagEnforcer(MailboxDataForTags mailboxDataForTags, ElcTagSubAssistant elcTagSubAssistant) : base(mailboxDataForTags, elcTagSubAssistant) { }
// Token: 0x0600067B RID: 1659 RVA: 0x00031700 File Offset: 0x0002F900 internal EHAQuotaWarningEnforcer(MailboxDataForTags mailboxDataForTags, SysCleanupSubAssistant sysCleanupSubAssistant) : base(mailboxDataForTags, sysCleanupSubAssistant) { }
// Token: 0x0600065B RID: 1627 RVA: 0x00030730 File Offset: 0x0002E930 internal AuditQuotaEnforcer(MailboxDataForTags mailboxDataForTags, SysCleanupSubAssistant sysCleanupSubAssistant) : base(mailboxDataForTags, sysCleanupSubAssistant) { }
// Token: 0x0600039F RID: 927 RVA: 0x000197AC File Offset: 0x000179AC public ADChangeDetector(MailboxDataForTags mailboxDataForTags) { this.mailboxDataForTags = mailboxDataForTags; this.elcUserInfo = (ElcUserTagInformation)this.mailboxDataForTags.ElcUserInformation; }
// Token: 0x06000671 RID: 1649 RVA: 0x000312D8 File Offset: 0x0002F4D8 internal CalendarLogExpirationEnforcer(MailboxDataForTags mailboxDataForTags, SysCleanupSubAssistant sysCleanupSubAssistant) : base(mailboxDataForTags, sysCleanupSubAssistant) { }
// Token: 0x060005B2 RID: 1458 RVA: 0x0002B794 File Offset: 0x00029994 internal SysCleanupEnforcerBase(MailboxDataForTags mailboxDataForTags, SysCleanupSubAssistant sysCleanupSubAssistant) { this.MailboxDataForTags = mailboxDataForTags; this.SysCleanupSubAssistant = sysCleanupSubAssistant; this.TagExpirationExecutor = new TagExpirationExecutor(mailboxDataForTags, sysCleanupSubAssistant); }
// Token: 0x0600061A RID: 1562 RVA: 0x0002ED84 File Offset: 0x0002CF84 internal SupplementExpirationEnforcer(MailboxDataForTags mailboxDataForTags, SysCleanupSubAssistant sysCleanupSubAssistant) : base(mailboxDataForTags, sysCleanupSubAssistant) { }