private void AddQualificationsToFrameworks(LarsData larsData) { foreach (var framework in larsData.Frameworks) { var frameworkAims = larsData.FrameworkAimMetaData.Where(x => x.FworkCode.Equals(framework.FworkCode) && x.ProgType.Equals(framework.ProgType) && x.PwayCode.Equals(framework.PwayCode)).ToList(); frameworkAims = frameworkAims.Where(x => x.EffectiveTo >= DateTime.Now || x.EffectiveTo == null || IsSpecialFramework($"{x.FworkCode}-{x.ProgType}-{x.PwayCode}")).ToList(); var qualifications = (from aim in frameworkAims join comp in larsData.ApprenticeshipComponentTypeMetaData on aim.ApprenticeshipComponentType equals comp.ApprenticeshipComponentType join ld in larsData.LearningDeliveryMetaData on aim.LearnAimRef equals ld.LearnAimRef select new FrameworkQualification { Title = ld.LearnAimRefTitle.Replace("(QCF)", string.Empty).Trim(), LearnAimRef = aim.LearnAimRef, CompetenceType = comp.ApprenticeshipComponentType, CompetenceDescription = comp.ApprenticeshipComponentTypeDesc }).ToList(); // Determine if the qualifications are funded or not by the apprenticeship scheme DetermineQualificationFundingStatus(qualifications, larsData.FundingMetaData); // Only show funded qualifications qualifications = qualifications.Where(x => x.IsFunded).ToList(); var categorisedQualifications = GetCategorisedQualifications(qualifications); framework.CompetencyQualification = categorisedQualifications.Competency; framework.KnowledgeQualification = categorisedQualifications.Knowledge; framework.CombinedQualification = categorisedQualifications.Combined; } }
/// <summary> /// Determines whether [has valid learning aim] [the specified delivery]. /// </summary> /// <param name="delivery">The delivery.</param> /// <param name="branchCategory">The branch category.</param> /// <returns> /// <c>true</c> if [has valid learning aim] [the specified delivery]; otherwise, <c>false</c>. /// </returns> public bool HasValidLearningAim(ILearningDelivery delivery, string branchCategory) { var validities = LarsData.GetValiditiesFor(delivery.LearnAimRef) .Where(x => x.ValidityCategory.ComparesWith(branchCategory)); return(validities .SafeAny(x => HasValidStartRange(x, delivery))); }
/// <summary> /// Determines whether [has valid learning aim] [the specified delivery]. /// </summary> /// <param name="delivery">The delivery.</param> /// <param name="branchCategory">The branch category.</param> /// <returns> /// <c>true</c> if [has valid learning aim] [the specified delivery]; otherwise, <c>false</c>. /// </returns> public bool HasValidLearningAim(ILearningDelivery delivery, string branchCategory) { var lastYearEnd = GetClosingDateOfLastAcademicYear(delivery); var validity = LarsData.GetValiditiesFor(delivery.LearnAimRef) .Where(x => x.ValidityCategory.ComparesWith(branchCategory)) .OrderByDescending(x => x.StartDate) .FirstOrDefault(); return((validity?.EndDate ?? DateTime.MaxValue) > lastYearEnd); }
private int GetTotalAmountDocumentsToBeIndexed(LarsData larsData) { return(larsData.Standards.Count() + larsData.Frameworks.Count() + larsData.FundingMetaData.Count() + larsData.FrameworkAimMetaData.Count() + larsData.LearningDeliveryMetaData.Count() + larsData.ApprenticeshipComponentTypeMetaData.Count() + larsData.ApprenticeshipFunding.Count()); }