public void Validate(ILearner objectToValidate)
        {
            if (objectToValidate?.LearningDeliveries == null)
            {
                return;
            }

            foreach (var learningDelivery in objectToValidate.LearningDeliveries)
            {
                DateTime?dd04Date = _dd04.GetEarliesStartDateFor(learningDelivery, objectToValidate.LearningDeliveries);

                if (ConditionMet(
                        learningDelivery.LearnAimRef,
                        learningDelivery.FundModel,
                        dd04Date,
                        learningDelivery.AimType,
                        learningDelivery.ProgTypeNullable,
                        learningDelivery.FworkCodeNullable,
                        learningDelivery.PwayCodeNullable,
                        learningDelivery.LearningDeliveryFAMs))
                {
                    HandleValidationError(
                        objectToValidate.LearnRefNumber,
                        learningDelivery.AimSeqNumber,
                        BuildErrorMessageParameters(
                            learningDelivery.ProgTypeNullable,
                            learningDelivery.FworkCodeNullable,
                            learningDelivery.PwayCodeNullable));
                }
            }
        }
        public void Validate(ILearner objectToValidate)
        {
            if (objectToValidate.LearningDeliveries == null ||
                LearnerConditionMet(objectToValidate.DateOfBirthNullable))
            {
                return;
            }

            DateTime sixteenthBirthDate = objectToValidate.DateOfBirthNullable.Value.AddYears(16);

            foreach (var learningDelivery in objectToValidate.LearningDeliveries)
            {
                DateTime?dd04Date = _dd04.GetEarliesStartDateFor(learningDelivery, objectToValidate.LearningDeliveries);
                DateTime lastFridayInJuneForAcademicYear = _academicYearQueryService.LastFridayInJuneForDateInAcademicYear(sixteenthBirthDate);

                if (ConditionMet(learningDelivery.ProgTypeNullable, dd04Date, lastFridayInJuneForAcademicYear))
                {
                    HandleValidationError(objectToValidate.LearnRefNumber, learningDelivery.AimSeqNumber, BuildErrorMessageParameters(objectToValidate.DateOfBirthNullable, learningDelivery.LearnStartDate));
                }
            }
        }
예제 #3
0
 public DateTime?GetEarliestStartDateFor(ILearningDelivery theDelivery, IReadOnlyCollection <ILearningDelivery> usingSources) =>
 _derivedData04.GetEarliesStartDateFor(theDelivery, usingSources);