internal static ArgumentException ValidateDataClassificationParameters(OrganizationId orgId, IEnumerable <Hashtable> classifications) { if (classifications == null || classifications.Count <Hashtable>() == 0) { return(null); } ArgumentException ex = MessageContainsDataClassificationsPredicate.ValidateDataClassificationStaticParameters(classifications); if (ex != null) { return(ex); } HashSet <string> hashSet = new HashSet <string>(); foreach (Hashtable hashtable in classifications) { TargetDataClassification targetDataClassification = MessageContainsDataClassificationsPredicate.HashtableToDataClassification(hashtable); ArgumentException ex2 = MessageContainsDataClassificationsPredicate.ValidateDataClassificationParameter(targetDataClassification, hashtable); if (ex2 != null) { return(ex2); } if (!hashSet.Add(targetDataClassification.Id)) { return(new ArgumentException(RulesTasksStrings.DuplicateDataClassificationSpecified)); } } try { var source = from value in DlpUtils.QueryDataClassification(hashSet, orgId, null, null, null) select new { InvariantName = value.Name, LocalizedName = value.LocalizedName, Identity = value.Identity.ToString(), ClassificationRuleCollectionId = value.ClassificationRuleCollection.Name }; foreach (Hashtable hashtable2 in classifications) { string classificationName = (string)hashtable2["Name".ToUpper()]; var <> f__AnonymousType = source.FirstOrDefault(dataClassification => dataClassification.InvariantName == classificationName || dataClassification.LocalizedName == classificationName || string.Equals(dataClassification.Identity, classificationName, StringComparison.OrdinalIgnoreCase)); if (< > f__AnonymousType == null) { return(new ArgumentException(RulesTasksStrings.InvalidMessageDataClassification(classificationName))); } hashtable2["Name".ToUpper()] = < > f__AnonymousType.Identity; hashtable2[TargetDataClassification.OpaqueDataKey.ToUpper()] = < > f__AnonymousType.ClassificationRuleCollectionId; } } catch (ArgumentException result) { return(result); } return(null); }