private static void ValidatePrivateCreator(DicomTag tag, string privateCreator, string tagPath) { if (!tag.IsPrivate) { // Standard tags should not have private creator. if (!string.IsNullOrWhiteSpace(privateCreator)) { throw new ExtendedQueryTagEntryValidationException( string.Format(CultureInfo.InvariantCulture, DicomCoreResource.PrivateCreatorNotEmpty, tagPath)); } return; } // PrivateCreator Tag should not have privateCreator. if (tag.DictionaryEntry == DicomDictionary.PrivateCreatorTag) { if (!string.IsNullOrWhiteSpace(privateCreator)) { throw new ExtendedQueryTagEntryValidationException( string.Format(CultureInfo.InvariantCulture, DicomCoreResource.PrivateCreatorNotEmptyForPrivateIdentificationCode, tagPath)); } return; } // Private tag except PrivateCreator requires privateCreator if (string.IsNullOrWhiteSpace(privateCreator)) { throw new ExtendedQueryTagEntryValidationException( string.Format(CultureInfo.InvariantCulture, DicomCoreResource.MissingPrivateCreator, tagPath)); } try { DicomElementMinimumValidation.ValidateLO(privateCreator, nameof(privateCreator)); } catch (DicomElementValidationException ex) { throw new ExtendedQueryTagEntryValidationException( string.Format(CultureInfo.InvariantCulture, DicomCoreResource.PrivateCreatorNotValidLO, tagPath), ex); } }
public void GivenLOInvalidValue_WhenValidating_Throws(string value) { Assert.Throws <DicomElementValidationException>(() => DicomElementMinimumValidation.ValidateLO(value, nameof(value))); }