public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { var result = new List <ValidationResult>(); result.AddRange(FirstOnsetDate.ValidatePastDate(nameof(FirstOnsetDate), true)); result.AddRange(LastMedicalConsultationDate.ValidatePastDate(nameof(LastMedicalConsultationDate), true)); for (var i = 0; i <= PhysicianInfos.Count - 1; i++) { result.AddRange(PhysicianInfos[i].Validate($"{nameof(PhysicianInfos)}[{i}]")); } if (string.IsNullOrWhiteSpace(Diagnosis)) { result.Add(new ValidationResult(string.Empty, new[] { nameof(Diagnosis) })); } if (string.IsNullOrWhiteSpace(OnsetDescription)) { result.Add(new ValidationResult(string.Empty, new[] { nameof(OnsetDescription) })); } if (string.IsNullOrWhiteSpace(HasFamilyMemberWithSameProblem)) { result.Add(new ValidationResult(string.Empty, new[] { nameof(HasFamilyMemberWithSameProblem) })); } if (HasFamilyMemberWithSameProblem == "O") { result.AddRange(FamilyMembers.Validate(nameof(FamilyMembers), true)); } return(result); }