Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
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());
 }