/// <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));
        }
Exemplo n.º 3
0
        public bool IsEarlyStageNVQ(ILearningDelivery delivery)
        {
            var larsDelivery = _larsData.GetDeliveryFor(delivery.LearnAimRef);

            if (larsDelivery == null)
            {
                return(false);
            }

            return(_nvqLevels.Contains(larsDelivery.NotionalNVQLevelv2));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
0
        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));
                }
            }
        }
Exemplo n.º 10
0
        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));
        }
Exemplo n.º 13
0
 public ILARSLearningDelivery GetLARSLearningDeliveryFor(ILearningDelivery theDelivery) =>
 _larsData.GetDeliveryFor(theDelivery.LearnAimRef);
Exemplo n.º 14
0
        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));
        }