// Token: 0x06000423 RID: 1059 RVA: 0x0001D818 File Offset: 0x0001BA18 private bool GetStoreData() { if (this.configItem == null) { this.EnsureUserConfigurationIsValid(); } try { this.storeTagDictionary = MrmFaiFormatter.Deserialize(this.configItem, base.MailboxSession.MailboxOwner, out this.deletedTags, out this.fullCrawlRequired); if (this.IsArchiveMailUser) { foreach (StoreTagData storeTagData in this.storeTagDictionary.Values) { bool flag = ElcMailboxHelper.IsArchiveTag(storeTagData, false); if (storeTagData.Tag.Type == ElcFolderType.All && !flag) { foreach (ContentSetting contentSetting in storeTagData.ContentSettings.Values) { if (contentSetting.MessageClass.Equals(ElcMessageClass.AllMailboxContent, StringComparison.CurrentCultureIgnoreCase)) { this.defaultAdTag = storeTagData.Tag.RetentionId; break; } if (contentSetting.MessageClass.Equals(ElcMessageClass.VoiceMail, StringComparison.CurrentCultureIgnoreCase)) { this.defaultVmAdTag = storeTagData.Tag.RetentionId; break; } } } } this.defaultContentSettingList = new List <ElcPolicySettings>(); if (!this.defaultAdTag.Equals(Guid.Empty)) { foreach (ContentSetting elcContentSetting in this.storeTagDictionary[this.defaultAdTag].ContentSettings.Values) { ElcPolicySettings.ParseContentSettings(this.defaultContentSettingList, elcContentSetting); } } if (!this.defaultVmAdTag.Equals(Guid.Empty)) { foreach (ContentSetting elcContentSetting2 in this.storeTagDictionary[this.defaultVmAdTag].ContentSettings.Values) { ElcPolicySettings.ParseContentSettings(this.defaultContentSettingList, elcContentSetting2); } } } } catch (ObjectNotFoundException arg) { ElcUserInformation.Tracer.TraceDebug <ObjectNotFoundException>((long)this.GetHashCode(), "Deserialize of MRM FAI message failed because it could not be found. Exception: {0}", arg); return(false); } return(true); }
// Token: 0x06000366 RID: 870 RVA: 0x00017BCC File Offset: 0x00015DCC internal ProvisionedFolder(StoreObjectId folderId, string displayName, string fullFolderPath, string containerClass, bool isProvisionedFolder, ContentSetting[] elcContentSettings, Guid elcFolderGuid, bool inheritedPolicy) { this.folderId = folderId; this.displayName = displayName; this.fullFolderPath = fullFolderPath; this.containerClass = containerClass; this.isProvisionedFolder = isProvisionedFolder; this.elcFolderGuid = elcFolderGuid; this.inheritedPolicy = inheritedPolicy; if (elcContentSettings != null) { this.elcPolicies = new List <ElcPolicySettings>(); foreach (ContentSetting elcContentSetting in elcContentSettings) { ElcPolicySettings.ParseContentSettings(this.elcPolicies, elcContentSetting); } this.elcPolicies.Sort(delegate(ElcPolicySettings first, ElcPolicySettings second) { if (first == second) { return(0); } string text = first.MessageClass.TrimEnd(new char[] { '*' }); string text2 = second.MessageClass.TrimEnd(new char[] { '*' }); if (text.Length > text2.Length) { return(-1); } if (text.Length < text2.Length) { return(1); } if (first.MessageClass.EndsWith("*")) { return(1); } if (second.MessageClass.EndsWith("*")) { return(-1); } return(0); }); } }
// Token: 0x06000419 RID: 1049 RVA: 0x0001D084 File Offset: 0x0001B284 internal void GetDefaultTagInAD() { this.defaultAdTag = Guid.Empty; this.defaultVmAdTag = Guid.Empty; Guid key = Guid.Empty; Guid key2 = Guid.Empty; foreach (AdTagData adTagData in this.tagsInUserPolicy.Values) { if (adTagData.Tag.Type == ElcFolderType.All) { if (ElcMailboxHelper.IsArchiveTag(adTagData, true)) { ElcUserInformation.Tracer.TraceDebug <ElcUserTagInformation, string>((long)this.GetHashCode(), "{0}: Default move to archive tag found: {1}", this, adTagData.Tag.Name); this.defaultArchiveAdTag = adTagData.Tag.RetentionId; this.defaultArchiveTagObjectGuid = adTagData.Tag.Guid; this.archivingEnabled = true; continue; } if (ElcMailboxHelper.IsArchiveTag(adTagData, false)) { continue; } ElcUserInformation.Tracer.TraceDebug <ElcUserTagInformation, string>((long)this.GetHashCode(), "{0}: Default tag found: {1}", this, adTagData.Tag.Name); using (SortedDictionary <Guid, ContentSetting> .ValueCollection.Enumerator enumerator2 = adTagData.ContentSettings.Values.GetEnumerator()) { while (enumerator2.MoveNext()) { ContentSetting contentSetting = enumerator2.Current; if (contentSetting.MessageClass.Equals(ElcMessageClass.AllMailboxContent, StringComparison.CurrentCultureIgnoreCase)) { this.defaultAdTag = adTagData.Tag.RetentionId; key = adTagData.Tag.Guid; this.compactDefaultPolicy = null; break; } if (contentSetting.MessageClass.Equals(ElcMessageClass.VoiceMail, StringComparison.CurrentCultureIgnoreCase)) { this.defaultVmAdTag = adTagData.Tag.RetentionId; key2 = adTagData.Tag.Guid; this.compactDefaultPolicy = null; break; } } continue; } } if (adTagData.Tag.Type != ElcFolderType.RecoverableItems && ElcMailboxHelper.IsArchiveTag(adTagData, true)) { ElcUserInformation.Tracer.TraceDebug <ElcUserTagInformation, string>((long)this.GetHashCode(), "{0}: Enabled Archive tag found: {1}", this, adTagData.Tag.Name); this.archivingEnabled = true; } } this.defaultContentSettingList = new List <ElcPolicySettings>(); if (!this.defaultAdTag.Equals(Guid.Empty)) { foreach (ContentSetting elcContentSetting in this.tagsInUserPolicy[key].ContentSettings.Values) { ElcPolicySettings.ParseContentSettings(this.defaultContentSettingList, elcContentSetting); } } if (!this.defaultVmAdTag.Equals(Guid.Empty)) { foreach (ContentSetting elcContentSetting2 in this.tagsInUserPolicy[key2].ContentSettings.Values) { ElcPolicySettings.ParseContentSettings(this.defaultContentSettingList, elcContentSetting2); } } if (!this.defaultArchiveAdTag.Equals(Guid.Empty)) { this.storeDefaultArchiveTagDictionary = new Dictionary <Guid, StoreTagData>(); this.storeDefaultArchiveTagDictionary[this.defaultArchiveAdTag] = new StoreTagData(this.tagsInUserPolicy[this.defaultArchiveTagObjectGuid]); this.defaultArchiveContentSettingList = new List <ElcPolicySettings>(); foreach (ContentSetting elcContentSetting3 in this.tagsInUserPolicy[this.defaultArchiveTagObjectGuid].ContentSettings.Values) { ElcPolicySettings.ParseContentSettings(this.defaultArchiveContentSettingList, elcContentSetting3); } } }
// Token: 0x060004E5 RID: 1253 RVA: 0x000252C0 File Offset: 0x000234C0 internal void LoadStoreTagDataFromStore(MailboxSession mailboxSession) { this.ResetState(); StoreId defaultFolderId = mailboxSession.GetDefaultFolderId(DefaultFolderType.Inbox); Exception ex = null; this.underRetentionPolicy = false; this.storeTagDictionary = null; this.folderTagDictionary = null; this.folderArchiveTagDictionary = null; this.itemClassToPolicyMapping = null; try { using (UserConfiguration folderConfiguration = mailboxSession.UserConfigurationManager.GetFolderConfiguration("MRM", UserConfigurationTypes.Stream | UserConfigurationTypes.XML | UserConfigurationTypes.Dictionary, defaultFolderId)) { this.storeTagDictionary = MrmFaiFormatter.Deserialize(folderConfiguration, mailboxSession.MailboxOwner); this.haveCheckedForDefault = false; this.checkedForDefaultForMessageClass = false; this.defaultTag = null; this.defaultVmTag = null; StoreTagData storeTagData = new StoreTagData(); storeTagData.Tag = new RetentionTag(); storeTagData.Tag.Guid = PolicyTagHelper.SystemCleanupTagGuid; this.storeTagDictionary[PolicyTagHelper.SystemCleanupTagGuid] = storeTagData; this.defaultContentSettingList = new List <ElcPolicySettings>(); foreach (StoreTagData storeTagData2 in this.storeTagDictionary.Values) { if (storeTagData2.Tag.Type == ElcFolderType.All) { foreach (ContentSetting elcContentSetting in storeTagData2.ContentSettings.Values) { ElcPolicySettings.ParseContentSettings(this.defaultContentSettingList, elcContentSetting); } } } this.folderTypeDictionary = new Dictionary <StoreObjectId, DefaultFolderType>(); this.folderTagDictionary = new Dictionary <StoreObjectId, Guid>(); this.folderArchiveTagDictionary = new Dictionary <StoreObjectId, Guid>(); this.itemClassToPolicyMapping = new Dictionary <string, ContentSetting>(); this.underRetentionPolicy = true; if (this.rootFolderId == null) { StoreObjectId defaultFolderId2 = mailboxSession.GetDefaultFolderId(DefaultFolderType.Root); if (defaultFolderId2 != null) { this.rootFolderId = defaultFolderId2.ProviderLevelItemId; } } if (this.sentItemsId == null) { StoreObjectId defaultFolderId3 = mailboxSession.GetDefaultFolderId(DefaultFolderType.SentItems); if (defaultFolderId3 != null) { this.sentItemsId = defaultFolderId3.ProviderLevelItemId; } } if (this.deletedItemsId == null) { StoreObjectId defaultFolderId4 = mailboxSession.GetDefaultFolderId(DefaultFolderType.DeletedItems); if (defaultFolderId4 != null) { this.deletedItemsId = defaultFolderId4.ProviderLevelItemId; } } this.CacheFolderIdsToSkip(mailboxSession); } } catch (ObjectNotFoundException ex2) { ex = ex2; } catch (CorruptDataException ex3) { ex = ex3; } catch (StorageTransientException ex4) { ex = ex4; } catch (StoragePermanentException ex5) { ex = ex5; } if (ex != null) { UserRetentionPolicyCache.Tracer.TraceDebug <UserRetentionPolicyCache, Exception>((long)this.GetHashCode(), "{0}: Config message with store settings is missing or corrupt. Recreate it. Exception: {1}", this, ex); this.underRetentionPolicy = false; this.storeTagDictionary = null; this.folderTagDictionary = null; this.folderArchiveTagDictionary = null; this.itemClassToPolicyMapping = null; } }