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)); } } }
public DateTime?GetEarliestStartDateFor(ILearningDelivery theDelivery, IReadOnlyCollection <ILearningDelivery> usingSources) => _derivedData04.GetEarliesStartDateFor(theDelivery, usingSources);