/// <summary> /// Determines whether [is entitled level 2 NVQ] [the specified delivery]. /// </summary> /// <param name="delivery">The delivery.</param> /// <returns> /// <c>true</c> if [is entitled level 2 NVQ] [the specified delivery]; otherwise, <c>false</c>. /// </returns> public bool IsEntitledLevel2NVQ(ILearningDelivery delivery) { var larsDelivery = _larsData.GetDeliveryFor(delivery.LearnAimRef); return(IsV2NotionalLevel2(larsDelivery) && larsDelivery.Categories.SafeAny(IsLegallyEntitled)); }
/// <summary> /// Determines whether [is early stage NVQ] [the specified delivery]. /// </summary> /// <param name="delivery">The delivery.</param> /// <returns> /// <c>true</c> if [is early stage NVQ] [the specified delivery]; otherwise, <c>false</c>. /// </returns> public bool IsEarlyStageNVQ(ILearningDelivery delivery) { var larsDelivery = _larsData.GetDeliveryFor(delivery.LearnAimRef); return(It.IsInRange( larsDelivery?.NotionalNVQLevelv2, LARSNotionalNVQLevelV2.EntryLevel, LARSNotionalNVQLevelV2.Level1, LARSNotionalNVQLevelV2.Level2)); }
public bool IsEarlyStageNVQ(ILearningDelivery delivery) { var larsDelivery = _larsData.GetDeliveryFor(delivery.LearnAimRef); if (larsDelivery == null) { return(false); } return(_nvqLevels.Contains(larsDelivery.NotionalNVQLevelv2)); }
public bool IsBasicSkillsLearner(ILearningDelivery delivery) { var larsLearningDelivery = _larsDataService.GetDeliveryFor(delivery.LearnAimRef); if (larsLearningDelivery == null) { return(true); } return(_dateTimeQueryService.IsDateBetween(delivery.LearnStartDate, larsLearningDelivery.EffectiveFrom, larsLearningDelivery.EffectiveTo ?? DateTime.MaxValue) && _larsDataService.BasicSkillsTypeMatchForLearnAimRef(_basicSkillTypes, delivery.LearnAimRef)); }
public bool LARSConditionMet(string conRefNumber, string learnAimRef) { List <decimal?> sectorSubjectAreaCodes = _fCSDataService.GetEligibilityRuleSectorSubjectAreaLevelsFor(conRefNumber)? .Where(s => s.SectorSubjectAreaCode.HasValue) .Select(s => s.SectorSubjectAreaCode).ToList(); var learningDelivery = _lARSDataService.GetDeliveryFor(learnAimRef); bool isMatchNotFoundForSectorSubjectAreaTier1 = !sectorSubjectAreaCodes.Contains(learningDelivery.SectorSubjectAreaTier1); bool isMatchNotFoundForSectorSubjectAreaTier2 = !sectorSubjectAreaCodes.Contains(learningDelivery.SectorSubjectAreaTier2); return(isMatchNotFoundForSectorSubjectAreaTier1 && isMatchNotFoundForSectorSubjectAreaTier2); }
public bool IsNotValid(ILearningDelivery thisDelivery) { var esfEligibilities = _fcsData.GetEligibilityRuleSectorSubjectAreaLevelsFor(thisDelivery.ConRefNumber).ToReadOnlyCollection(); var larsLearningDelivery = _larsData.GetDeliveryFor(thisDelivery.LearnAimRef); if (esfEligibilities.Any() && larsLearningDelivery != null) { return (!thisDelivery.LearnAimRef.CaseInsensitiveEquals(AimTypes.References.ESFLearnerStartandAssessment) && FundModelConditionMet(thisDelivery.FundModel) && HasDisqualifyingSubjectSector(larsLearningDelivery, esfEligibilities)); } return(false); }
public bool ConditionMet(DateTime?dateOfBirth, IEnumerable <ILearnerEmploymentStatus> learnerEmploymentStatuses, ILearningDelivery learningDelivery) { var larsLearningDelivery = _larsDataService.GetDeliveryFor(learningDelivery.LearnAimRef); if (larsLearningDelivery == null) { return(false); } return(!Excluded(learningDelivery, learnerEmploymentStatuses, larsLearningDelivery) && FundModelCondition(learningDelivery.FundModel) && StartDateCondition(learningDelivery.LearnStartDate) && AgeConditionMet(learningDelivery.LearnStartDate, dateOfBirth) && LarsCondition(larsLearningDelivery) && LearningDeliveryFAMsCondition(learningDelivery.LearningDeliveryFAMs)); }
public bool IsNotValid(ILearningDelivery delivery, ILearner learner) { var larsLearningDelivery = _larsData.GetDeliveryFor(delivery.LearnAimRef); if (larsLearningDelivery == null) { return(false); } return(!IsExcluded(delivery, larsLearningDelivery) && !IsAdultFundedUnemployedWithBenefits(delivery, learner) && !IsAdultFundedUnemployedWithOtherStateBenefits(delivery, learner) && IsAdultFunding(delivery) && IsViableStart(delivery) && IsTargetAgeGroup(learner, delivery) && CheckDeliveryFAMs(delivery, IsFullyFunded) && IsEarlyStageNVQ(delivery, larsLearningDelivery)); }
public void Validate(ILearner objectToValidate) { if (objectToValidate.LearningDeliveries == null) { return; } var aim = objectToValidate.LearningDeliveries.FirstOrDefault(l => l.ProgTypeNullable == ProgTypes.TLevel); if (aim != null) { if (!objectToValidate.LearningDeliveries.Any(l => l.AimType == AimTypes.CoreAim16To19ExcludingApprenticeships && _larsDataService.GetDeliveryFor(l.LearnAimRef)?.LearnAimRefType == LARSConstants.LearnAimRefTypes.TLevelTechnicalQualification)) { HandleValidationError(objectToValidate.LearnRefNumber, aim.AimSeqNumber, BuildErrorMessageParameters(_larsDataService.GetDeliveryFor(aim.LearnAimRef).LearnAimRefType, aim.ProgTypeNullable)); } } }
public void RunChecksFor(ILearningDelivery thisDelivery, ILearner learner, Action <ILearningDeliveryFAM> doAction) { var larsLearningDelivery = _larsData.GetDeliveryFor(thisDelivery.LearnAimRef); if (larsLearningDelivery == null) { return; } if (!IsExcluded(thisDelivery, larsLearningDelivery) && !IsAdultFundedUnemployedWithBenefits(thisDelivery, learner) && !IsAdultFundedUnemployedWithOtherStateBenefits(thisDelivery, learner) && IsViableStart(thisDelivery) && IsAdultFunding(thisDelivery) && IsTargetAgeGroup(learner, thisDelivery) && IsV2NotionalLevel2(larsLearningDelivery) && IsNotEntitled(larsLearningDelivery)) { thisDelivery.LearningDeliveryFAMs.ForAny(IsFullyFundedLearningAim, doAction); } }
public void Validate(ILearner learner) { if (learner?.LearningDeliveries == null) { return; } foreach (var learningDelivery in learner.LearningDeliveries) { if ((learningDelivery.LearnActEndDateNullable ?? DateTime.MaxValue) < _ruleStartDate) { continue; } if ((learningDelivery.OutcomeNullable ?? -1) != OutcomeConstants.Achieved || string.IsNullOrEmpty(learningDelivery.OutGrade)) { continue; } var larsLearningDelivery = _larsDataService.GetDeliveryFor(learningDelivery.LearnAimRef); if (!_learnAinRefTypes.Any(l => l.CaseInsensitiveEquals(larsLearningDelivery?.LearnAimRefType))) { continue; } if (!_lookupDetails.Contains( TypeOfListItemLookup.OutGradeLearningAimType, larsLearningDelivery.LearnAimRefType, learningDelivery.OutGrade)) { HandleValidationError( learner.LearnRefNumber, learningDelivery.AimSeqNumber, BuildErrorMessageParameters(learningDelivery)); } } }
public bool HasQualifyingNotionalNVQ(ILearningDelivery delivery) { var larsDelivery = _larsData.GetDeliveryFor(delivery.LearnAimRef); return(IsQualifyingNotionalNVQ(larsDelivery)); }
public ILARSLearningDelivery GetLARSLearningDeliveryFor(ILearningDelivery theDelivery) => _larsData.GetDeliveryFor(theDelivery.LearnAimRef);
public bool HasQualifyingCommonComponent(ILearningDelivery theDelivery) { var larsDelivery = _larsData.GetDeliveryFor(theDelivery.LearnAimRef); return(larsDelivery != null && IsBritishSignLanguage(larsDelivery)); }
public bool ConditionMet(string learnAimRef, int?progType, int aimType) { return(_larsDataService.GetDeliveryFor(learnAimRef)?.LearnAimRefType == _larsLearnAimRefType && progType.HasValue && progType == _tLevelProgType && aimType != _coreAimType); }
public bool IsLevel2Nvq(ILearningDelivery delivery) { var larsDelivery = _larsData.GetDeliveryFor(delivery.LearnAimRef); return(IsV2NotionalLevel2(larsDelivery)); }