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

            if (objectToValidate.DateOfBirthNullable.HasValue)
            {
                var learnersSixteenthBirthdate = objectToValidate.DateOfBirthNullable.Value.AddYears(16);
                var firstAugustForAcademicYearOfLearnersSixteenthBirthDate = _academicYearDataService.GetAcademicYearOfLearningDate(learnersSixteenthBirthdate, AcademicYearDates.Commencement);

                foreach (var learningDelivery in objectToValidate.LearningDeliveries)
                {
                    if (ConditionMet(
                            learningDelivery,
                            firstAugustForAcademicYearOfLearnersSixteenthBirthDate))
                    {
                        HandleValidationError(
                            objectToValidate.LearnRefNumber,
                            learningDelivery.AimSeqNumber,
                            BuildErrorMessageParameters(objectToValidate.DateOfBirthNullable, learningDelivery.LearnStartDate));
                    }
                }
            }
        }
Exemplo n.º 2
0
        public bool ConditionMetLearningDelivery(DateTime learnStartDate, DateTime?learnActDateNullable)
        {
            var result = false;

            if (learnActDateNullable.HasValue)
            {
                var learnStartDateAcademicYear = _academicYearDataService.GetAcademicYearOfLearningDate(learnStartDate, AcademicYearDates.Commencement);
                var learnEndDateAcademicYear   = _academicYearDataService.GetAcademicYearOfLearningDate(learnActDateNullable.Value, AcademicYearDates.Commencement);

                if (learnStartDate >= _dateCondition && learnStartDateAcademicYear.Year == learnEndDateAcademicYear.Year)
                {
                    result = true;
                }
            }

            return(result);
        }
 public bool LearningDeliveryConditionMet(DateTime?dateOfBirth, DateTime learnStartDate)
 => dateOfBirth.HasValue &&
 learnStartDate >= _augustFirst2014 &&
 _dateTimeQueryService.YearsBetween(
     dateOfBirth.Value,
     _academicYearDataService.GetAcademicYearOfLearningDate(
         learnStartDate,
         AcademicYearDates.August31)) >= 19;
 /// <summary>
 /// Determines whether [is outside valid submission period] [the specified delivery].
 /// </summary>
 /// <param name="delivery">The delivery.</param>
 /// <returns>
 ///   <c>true</c> if [is outside valid submission period] [the specified delivery]; otherwise, <c>false</c>.
 /// </returns>
 public bool IsOutsideValidSubmissionPeriod(ILearningDelivery delivery) =>
 delivery.LearnStartDate < _yearData
 .GetAcademicYearOfLearningDate(_yearData.Today, AcademicYearDates.Commencement)
 .AddYears(OldestLearningSubmissionOffset);
Exemplo n.º 5
0
 /// <summary>
 /// Gets an academic year date.
 /// </summary>
 /// <param name="candidate">The candidate.</param>
 /// <returns>a date time representing the start of the comming year</returns>
 public DateTime GetNextAcademicYearDate(DateTime candidate) =>
 _yearData.GetAcademicYearOfLearningDate(candidate, AcademicYearDates.NextYearCommencement);
Exemplo n.º 6
0
 /// <summary>
 /// Gets the year of learning commentment date.
 /// </summary>
 /// <param name="candidate">The candidate.</param>
 /// <returns>a date time representing the 31 august for the year of learning</returns>
 public DateTime GetYearOfLearningCommencementDate(DateTime candidate) =>
 _yearData.GetAcademicYearOfLearningDate(candidate, AcademicYearDates.PreviousYearEnd);
 /// <summary>
 /// Gets the current academic year commencement date.
 /// </summary>
 /// <returns>a date time</returns>
 public DateTime GetCurrentAcademicYearCommencementDate() =>
 _academicYearDataService.GetAcademicYearOfLearningDate(_academicYearDataService.Today, AcademicYearDates.Commencement);