internal void Save(XDocument rulePackXDoc) { ArgumentValidator.ThrowIfNull("rulePackXDoc", rulePackXDoc); if (this.Fingerprints == null || this.Fingerprints.Count <= 0) { throw new DataClassificationFingerprintsMissingException(this.Name); } if (this.Fingerprints.Count((Fingerprint fingerprint) => string.IsNullOrEmpty(fingerprint.Description)) > 0) { throw new DataClassificationFingerprintsDescriptionMissingException(this.Name); } if (this.Fingerprints.Distinct(Fingerprint.Comparer).Count <Fingerprint>() != this.Fingerprints.Count) { throw new DataClassificationFingerprintsDuplicatedException(this.Name); } DataClassificationObjectId dataClassificationObjectId = this.Identity as DataClassificationObjectId; foreach (Fingerprint fingerprint2 in this.Fingerprints) { if (string.IsNullOrEmpty(fingerprint2.Identity)) { fingerprint2.Identity = XmlProcessingUtils.AddFingerprintTextProcessor(rulePackXDoc, fingerprint2); } } XmlProcessingUtils.AddDataClassification(rulePackXDoc, dataClassificationObjectId.Name, this.MinEngineVersion.ToString(), this.GetRuleXElement()); XmlProcessingUtils.AddLocalizedResource(rulePackXDoc, dataClassificationObjectId.Name, this.GetResourceXElement()); }