public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { IGradeService gradeService = DependencyResolver.Current.GetService <IGradeService>(); Grade grade = gradeService .All() .FirstOrDefault( g => g.GradeYear == this.GradeYear && (g.AcademicYear.StartDate == this.AcademicYearStartDate || g.AcademicYear.EndDate == this.AcademicYearEndDate)); if (grade != null) { yield return(new ValidationResult(string.Format("Grade {0} already exists", this.GradeYear))); } if (this.AcademicYearEndDate < DateTime.Now) { yield return(new ValidationResult("Grades cannot be added to already completed academic years.")); } }