/// <summary>
        /// Determines whether [is basic skills learner] [the specified delivery].
        /// </summary>
        /// <param name="delivery">The delivery.</param>
        /// <returns>
        ///   <c>true</c> if [is basic skills learner] [the specified delivery]; otherwise, <c>false</c>.
        /// </returns>
        public bool IsBasicSkillsLearner(ILearningDelivery delivery)
        {
            var deliveries = _larsData.GetDeliveriesFor(delivery.LearnAimRef)
                .Where(x => It.IsBetween(delivery.LearnStartDate, x.EffectiveFrom, x.EffectiveTo ?? DateTime.MaxValue))
                .AsSafeReadOnlyList();

            return deliveries
                .SelectMany(x => x.AnnualValues.AsSafeReadOnlyList())
                .Any(IsBasicSkillsLearner);
        }
Beispiel #2
0
        /// <summary>
        /// Determines whether [is work experience] [the specified delivery].
        /// </summary>
        /// <param name="delivery">The delivery.</param>
        /// <returns>
        ///   <c>true</c> if [is work experience] [the specified delivery]; otherwise, <c>false</c>.
        /// </returns>
        public bool IsWorkExperience(ILearningDelivery delivery)
        {
            var deliveries = _larsData.GetDeliveriesFor(delivery.LearnAimRef);

            return(deliveries
                   .SelectMany(x => x.LearningDeliveryCategories)
                   .SafeAny(IsWorkExperience));
        }
Beispiel #3
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  learningDeliveries = _lARSDataService.GetDeliveriesFor(learnAimRef);
            bool isMatchNotFoundForSectorSubjectAreaTier1 = !learningDeliveries.Join(sectorSubjectAreaCodes, ld => ld.SectorSubjectAreaTier1, fcs => fcs.Value, (ld, fcs) => fcs.Value).Any();
            bool isMatchNotFoundForSectorSubjectAreaTier2 = !learningDeliveries.Join(sectorSubjectAreaCodes, ld => ld.SectorSubjectAreaTier2, fcs => fcs.Value, (ld, fcs) => fcs.Value).Any();

            return(isMatchNotFoundForSectorSubjectAreaTier1 && isMatchNotFoundForSectorSubjectAreaTier2);
        }