public virtual IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { var result = new List <ValidationResult>(); if (Id != null && !Id.IsAbsoluteUri) { result.Add(FhirValidator.BuildResult(validationContext, "Entry id must be an absolute URI")); } if (Bundle.UriHasValue(SelfLink) && !SelfLink.IsAbsoluteUri) { result.Add(FhirValidator.BuildResult(validationContext, "Entry selflink must be an absolute URI")); } if (Links.FirstLink != null || Links.LastLink != null || Links.PreviousLink != null || Links.NextLink != null) { result.Add(FhirValidator.BuildResult(validationContext, "Paging links can only be used on feeds, not entries")); } if (Tags != null && validationContext.ValidateRecursively()) { FhirValidator.TryValidate(Tags, result, true); } return(result); }
public void ValidateDemoPatient() { var s = this.GetType().Assembly.GetManifestResourceStream("Hl7.Fhir.Test.patient-example.xml"); var patient = FhirParser.ParseResource(XmlReader.Create(s)); ICollection <ValidationResult> results = new List <ValidationResult>(); FhirValidator.Validate(patient, true); Assert.IsTrue(FhirValidator.TryValidate(patient, results, true)); }
public void ValidateDemoPatient() { var s = this.GetType().Assembly.GetManifestResourceStream("Hl7.Fhir.Test.patient-example.xml"); var patient = (Patient)FhirParser.ParseResource(XmlReader.Create(s)); ICollection <ValidationResult> results = new List <ValidationResult>(); FhirValidator.Validate(patient, true); Assert.IsTrue(FhirValidator.TryValidate(patient, results, true)); patient.Identifier[0].System = "urn:oid:crap really not valid"; results = new List <ValidationResult>(); Assert.IsFalse(FhirValidator.TryValidate(patient, results, true)); Assert.IsTrue(results.Count > 0); }
public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { var result = new List <ValidationResult>(); //if (String.IsNullOrWhiteSpace(Title)) // result.Add(new ValidationResult("Feed must contain a title", FhirValidator.SingleMemberName("Title")); //if (!UriHasValue(Id)) // result.Add(new ValidationResult("Feed must have an id")); //else // if (!Id.IsAbsoluteUri) // result.Add(new ValidationResult("Feed id must be an absolute URI")); if (Id != null && !Id.IsAbsoluteUri) { result.Add(FhirValidator.BuildResult(validationContext, "Feed id must be an absolute URI")); } //if (LastUpdated == null) // result.Add(new ValidationResult("Feed must have a updated date")); if (Links.SearchLink != null) { result.Add(FhirValidator.BuildResult(validationContext, "Links with rel='search' can only be used on feed entries")); } bool feedHasAuthor = !String.IsNullOrEmpty(this.AuthorName); if (Entries != null && validationContext.ValidateRecursively()) { foreach (var entry in Entries.Where(e => e != null)) { if (!feedHasAuthor && entry is ResourceEntry && String.IsNullOrEmpty(((ResourceEntry)entry).AuthorName)) { result.Add(FhirValidator.BuildResult(validationContext, "Bundle's author and Entry author cannot both be empty")); } FhirValidator.TryValidate(entry, result, validationContext.ValidateRecursively()); } } return(result); }
private static void validateElement(object value, ValidationContext validationContext, List <ValidationResult> result) { FhirValidator.TryValidate(value, result, validationContext.ValidateRecursively()); }