Example #1
0
        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)));
        }
Example #3
0
        /// <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);
        }
Example #4
0
 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());
 }