/// <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); }
/// <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)); }
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); }