public IEnumerable <ValidationResult> Validate(ValidationContext validationContext)
        {
            List <ValidationResult> errors = new List <ValidationResult>();

            if (this.StartDate >= this.EndDate)
            {
                errors.Add(new ValidationResult("Start date should not be equal or greater than end date."));
            }

            IAcademicYearService academicYearService = DependencyResolver.Current.GetService <IAcademicYearService>();

            bool yearExistsInDb =
                academicYearService.AcademicYearExistsInDb(this.StartDate, this.EndDate) ? true : false;

            if (yearExistsInDb)
            {
                errors.Add(new ValidationResult(
                               "Academic Year with the entered start year or end year already exists."));
            }

            if (academicYearService.All().Any())
            {
                AcademicYear latestAcademicYear =
                    academicYearService.All().OrderByDescending(ay => ay.StartDate).First();

                if (latestAcademicYear != null && this.StartDate.Year > latestAcademicYear.StartDate.Year + 1)
                {
                    errors.Add(new ValidationResult(
                                   "New academic year cannot be more than 1 year later than latest academic year."));
                }
            }

            if (this.EndDate.Year > this.StartDate.Year + 1)
            {
                errors.Add(new ValidationResult("Academic Year may not last more than 1 astronomical year."));
            }

            return(errors);
        }
示例#2
0
        public IEnumerable <ValidationResult> Validate(ValidationContext validationContext)
        {
            if (this.StartDate >= this.EndDate)
            {
                yield return(new ValidationResult("Start date should not be equal or greater than end date."));
            }

            IAcademicYearService academicYearService = DependencyResolver.Current.GetService <IAcademicYearService>();

            bool uniqueOnEdit = academicYearService.AcademicYearUniqueOnEdit(this.Id, this.StartDate, this.EndDate);

            if (!uniqueOnEdit)
            {
                yield return(new ValidationResult(
                                 "Academic Year with the entered start year or end year already exists."));
            }

            if (academicYearService.All().Any())
            {
                AcademicYear latestAcademicYear = academicYearService
                                                  .All()
                                                  .OrderByDescending(ay => ay.StartDate)
                                                  .First();

                if (latestAcademicYear != null && this.StartDate.Year > latestAcademicYear.StartDate.Year + 1)
                {
                    yield return(new ValidationResult(
                                     "New academic year cannot be more than 1 year later than latest academic year."));
                }
            }

            if (this.EndDate.Year > this.StartDate.Year + 1)
            {
                yield return(new ValidationResult(
                                 "Academic Year may not last more than 1 astronomical year."));
            }
        }