private void ValidateRetentionPolicy() { IConfigurationSession session = base.DataSession as IConfigurationSession; session.SessionSettings.IsSharedConfigChecked = true; MultiValuedProperty <ADObjectId> first = (MultiValuedProperty <ADObjectId>) this.DataObject[RetentionPolicyTagSchema.PolicyIds]; RetentionPolicy[] array = (from x in first select session.Read <RetentionPolicy>(x) into x where x != null select x).ToArray <RetentionPolicy>(); PresentationRetentionPolicyTag[] second = new PresentationRetentionPolicyTag[] { new PresentationRetentionPolicyTag(this.DataObject, this.contentSettingsObject) }; foreach (RetentionPolicy retentionPolicy in array) { PresentationRetentionPolicyTag[] retentionTags = (from x in retentionPolicy.RetentionPolicyTagLinks where !x.Equals(this.DataObject.Id) select session.Read <RetentionPolicyTag>(x) into x select new PresentationRetentionPolicyTag(x)).Concat(second).ToArray <PresentationRetentionPolicyTag>(); if (this.DataObject.Type == ElcFolderType.All) { RetentionPolicyValidator.ValicateDefaultTags(retentionPolicy, retentionTags, new Task.TaskErrorLoggingDelegate(base.WriteError)); } RetentionPolicyValidator.ValidateSystemFolderTags(retentionPolicy, retentionTags, new Task.TaskErrorLoggingDelegate(base.WriteError)); } }