private void PopulateDataStoreCache(IDataStoreCache cache, IEnumerable <ALBLearner> learners, ALBGlobal albGlobal, int ukprn)
        {
            cache.AddRange(BuildGlobals(albGlobal, ukprn));

            learners.NullSafeForEach(learner =>
            {
                var learnRefNumber = learner.LearnRefNumber;

                cache.Add(BuildLearner(learnRefNumber, ukprn));

                learner.LearningDeliveries.NullSafeForEach(ld => cache.Add(BuildLearningDelivery(ld, ukprn, learnRefNumber)));
            });

            var periodisedValues = learners.Select(l => new FundModelLearnerPeriodisedValue <List <LearnerPeriodisedValue> >(ukprn, l.LearnRefNumber, l.LearnerPeriodisedValues));

            cache.AddRange(BuildLearnerPeriods(periodisedValues, ukprn));

            periodisedValues.NullSafeForEach(pv => pv.LearnerPeriodisedValue.NullSafeForEach(lpv => cache.Add(BuildLearnerPeriodisedValue(lpv, ukprn, pv.LearnRefNumber))));

            var learningDeliveryPeriodisedValues = learners
                                                   .SelectMany(l => l.LearningDeliveries.Select(ld =>
                                                                                                new FundModelLearningDeliveryPeriodisedValue <List <LearningDeliveryPeriodisedValue> >(ukprn, l.LearnRefNumber, ld.AimSeqNumber, ld.LearningDeliveryPeriodisedValues)));

            cache.AddRange(BuildLearningDeliveryPeriods(learningDeliveryPeriodisedValues, ukprn));

            learningDeliveryPeriodisedValues.NullSafeForEach(ldpv => ldpv.LearningDeliveryPeriodisedValue.NullSafeForEach(learningDeliveryPeriodisedValue => cache.Add(BuildLearningDeliveryPeriodisedValues(learningDeliveryPeriodisedValue, ldpv.AimSeqNumber, ukprn, ldpv.LearnRefNumber))));
        }
コード例 #2
0
        private void PopulateDataStoreCache(IDataStoreCache cache, IEnumerable <FM36Learner> learners, FM36Global fm36Global, int ukprn)
        {
            cache.AddRange(BuildGlobals(fm36Global, ukprn));

            learners.NullSafeForEach(learner =>
            {
                var learnRefNumber = learner.LearnRefNumber;

                cache.Add(BuildLearner(learner, ukprn, learnRefNumber));
                learner.LearningDeliveries.NullSafeForEach(learningDelivery => cache.Add(BuildLearningDelivery(learningDelivery, ukprn, learnRefNumber)));
                learner.PriceEpisodes.NullSafeForEach(priceEpisode => cache.Add(BuildPriceEpisode(priceEpisode, ukprn, learnRefNumber)));
            });

            var learningDeliveryPeriodisedValues = learners.SelectMany(l => l.LearningDeliveries.Select(ld =>
                                                                                                        new FundModel36LearningDeliveryPeriodisedValue(fm36Global.UKPRN, l.LearnRefNumber, ld.AimSeqNumber, ld.LearningDeliveryPeriodisedValues, ld.LearningDeliveryPeriodisedTextValues)));

            cache.AddRange(BuildLearningDeliveryPeriods(learningDeliveryPeriodisedValues));

            learningDeliveryPeriodisedValues.NullSafeForEach(ldpv =>
            {
                ldpv.LearningDeliveryPeriodisedValue.NullSafeForEach(learningDeliveryPeriodisedValue => cache.Add(BuildLearningDeliveryPeriodisedValues(learningDeliveryPeriodisedValue, ukprn, ldpv.AimSeqNumber, ldpv.LearnRefNumber)));
                ldpv.LearningDeliveryPeriodisedTextValue.NullSafeForEach(learningDeliveryPeriodisedTextValue => cache.Add(BuildLearningDeliveryPeriodisedTextValues(learningDeliveryPeriodisedTextValue, ukprn, ldpv.AimSeqNumber, ldpv.LearnRefNumber)));
            });

            var priceEpisodePeriodisedValues = learners.SelectMany(l => l.PriceEpisodes.Select(pe =>
                                                                                               new FundModelPriceEpisodePeriodisedValue <List <PriceEpisodePeriodisedValues> >(fm36Global.UKPRN, l.LearnRefNumber, pe.PriceEpisodeIdentifier, pe.PriceEpisodePeriodisedValues)));

            cache.AddRange(BuildPriceEpisodePeriods(priceEpisodePeriodisedValues));

            priceEpisodePeriodisedValues.NullSafeForEach(pepv => pepv.PriceEpisodePeriodisedValue.NullSafeForEach(priceEpisodePeriodisedValue => cache.Add(BuildPriceEpisodePeriodisedValue(priceEpisodePeriodisedValue, ukprn, pepv.LearnRefNumber, pepv.PriceEpisodeIdentifier))));
        }
        private void PopulateDataStoreCache(IDataStoreCache cache, IEnumerable <FM70Learner> learners, FM70Global fm70Global, int ukprn)
        {
            cache.AddRange(BuildGlobals(fm70Global, ukprn));

            learners.NullSafeForEach(learner =>
            {
                var learnRefNumber = learner.LearnRefNumber;

                cache.Add(BuildLearner(ukprn, learnRefNumber));
                learner.LearnerDPOutcomes.NullSafeForEach(learnerDp => cache.Add(BuildDPOutcome(learnerDp, ukprn, learnRefNumber)));
                learner.LearningDeliveries.NullSafeForEach(learningDelivery =>
                {
                    var aimSeqNumber = learningDelivery.AimSeqNumber.Value;

                    cache.Add(BuildLearningDelivery(learningDelivery, ukprn, learnRefNumber));
                    learningDelivery.LearningDeliveryDeliverableValues.NullSafeForEach(ldd => cache.Add(BuildLearningDeliveryDeliverable(ldd, ukprn, learnRefNumber, aimSeqNumber)));
                });
            });

            var learningDeliveryPeriodisedValues = learners.SelectMany(l => l.LearningDeliveries.SelectMany(ld => ld.LearningDeliveryDeliverableValues.Select(ldd =>
                                                                                                                                                              new FundModelESFLearningDeliveryPeriodisedValue <List <LearningDeliveryDeliverablePeriodisedValue> >(ukprn, l.LearnRefNumber, ld.AimSeqNumber.Value, ldd.DeliverableCode, ldd.LearningDeliveryDeliverablePeriodisedValues))));

            cache.AddRange(BuildLearningDeliveryDeliverablePeriods(learningDeliveryPeriodisedValues));

            learningDeliveryPeriodisedValues.NullSafeForEach(ldpv => ldpv.LearningDeliveryPeriodisedValue.NullSafeForEach(learningDeliveryPeriodisedValue => cache.Add(BuildLearningDeliveryDeliverablePeriodisedValue(learningDeliveryPeriodisedValue, ukprn, ldpv.AimSeqNumber, ldpv.LearnRefNumber, ldpv.EsfDeliverableCode))));
        }
コード例 #4
0
        private void PopulateValidLearners(IDataStoreCache cache, int ukprn, IHeader header, IReadOnlyCollection <ISourceFile> sourceFileCollection, IEnumerable <ILearner> learners, IEnumerable <ILearnerDestinationAndProgression> destinationAndProgressions)
        {
            var source = header.SourceEntity;
            int lLDDandHealthProblemID = 1;
            int learningDeliveryFamId  = 1;
            int appFinRecordId         = 1;

            cache.AddRange(BuildCollectionDetails(ukprn, header));
            cache.AddRange(BuildLearningProviders(ukprn));
            cache.AddRange(BuildSources(ukprn, source));
            cache.AddRange(BuildSourceFiles(ukprn, sourceFileCollection));

            learners.NullSafeForEach(learner =>
            {
                cache.Add(BuildValidLearner(ukprn, learner));

                learner.ContactPreferences.NullSafeForEach(contactPreference => cache.Add(BuildContactPreference(ukprn, learner, contactPreference)));
                learner.LearningDeliveries.NullSafeForEach(learningDelivery =>
                {
                    cache.Add(BuildLearningDelivery(ukprn, learner, learningDelivery));

                    if (learningDelivery.LearningDeliveryHEEntity != null)
                    {
                        cache.Add(BuildLearningDeliveryHERecord(ukprn, learner, learningDelivery));
                    }

                    learningDelivery.AppFinRecords.NullSafeForEach(appFinRecord => cache.Add(BuildLearningDeliveryAppFinRecord(ukprn, learner, learningDelivery, appFinRecord, appFinRecordId++)));
                    learningDelivery.LearningDeliveryFAMs.NullSafeForEach(famRecord => cache.Add(BuildLearningDeliveryFAMRecord(ukprn, learner, learningDelivery, famRecord, learningDeliveryFamId++)));
                    learningDelivery.LearningDeliveryWorkPlacements.NullSafeForEach(workPlacement => cache.Add(BuildLearningDeliveryWorkPlacement(ukprn, learner, learningDelivery, workPlacement)));
                    learningDelivery.ProviderSpecDeliveryMonitorings.NullSafeForEach(monitoring => cache.Add(BuildProviderSpecDeliveryMonitoring(ukprn, learner, learningDelivery, monitoring)));
                });

                learner.LearnerEmploymentStatuses.NullSafeForEach(employmentStatus =>
                {
                    cache.Add(BuildLearnerEmploymentStatus(ukprn, learner, employmentStatus));
                    employmentStatus.EmploymentStatusMonitorings.NullSafeForEach(monitoring => cache.Add(BuildEmploymentStatusMonitoring(ukprn, learner, employmentStatus, monitoring)));
                });

                learner.LearnerFAMs.NullSafeForEach(fam => cache.Add(BuildLearnerFAM(ukprn, learner, fam)));

                if (learner.LearnerHEEntity != null)
                {
                    cache.Add(BuildLearnerHE(ukprn, learner));
                    learner.LearnerHEEntity.LearnerHEFinancialSupports.NullSafeForEach(support => cache.Add(BuildLearnerHEFinancialSupport(ukprn, learner, support)));
                }

                learner.LLDDAndHealthProblems.NullSafeForEach(problem => cache.Add(BuildLLDDAndHealthProblem(ukprn, learner, problem, lLDDandHealthProblemID++)));

                learner.ProviderSpecLearnerMonitorings.NullSafeForEach(monitoring => cache.Add(BuildProviderSpecLearnerMonitoring(ukprn, learner, monitoring)));
            });

            destinationAndProgressions.NullSafeForEach(destinationAndProgression =>
            {
                cache.Add(BuildLearnerDestinationAndProgression(ukprn, destinationAndProgression));
                destinationAndProgression.DPOutcomes.NullSafeForEach(dpOutcome => cache.Add(BuildDPOutcome(ukprn, destinationAndProgression, dpOutcome)));
            });
        }
コード例 #5
0
        private void PopulateDataStoreCache(IDataStoreCache cache, IEnumerable <FM25Learner> learners, FM25Global fm25Global, int ukprn)
        {
            cache.AddRange(BuildFM25Global(fm25Global, ukprn));
            cache.AddRange(BuildFM25_35_Global(fm25Global, ukprn));

            learners.NullSafeForEach(learner =>
            {
                var learnRefNumber = learner.LearnRefNumber;

                cache.Add(BuildFM25Learner(ukprn, learner));
                learner.LearnerPeriods.NullSafeForEach(learnerPeriod => cache.Add(BuildFM25_35_LearnerPeriod(learnerPeriod, ukprn, learnRefNumber)));
                learner.LearnerPeriodisedValues.NullSafeForEach(learnerPV => cache.Add(BuildFM25_35_LearnerPeriodisedValues(learnerPV, ukprn, learnRefNumber)));
            });
        }
        private void PopulateDataStoreCache(IDataStoreCache cache, IEnumerable <FM81Learner> learners, FM81Global fm81Global, int ukprn)
        {
            cache.AddRange(BuildGlobals(fm81Global, ukprn));

            learners.NullSafeForEach(learner =>
            {
                var learnRefNumber = learner.LearnRefNumber;

                cache.Add(BuildLearner(ukprn, learnRefNumber));
                learner.LearningDeliveries.NullSafeForEach(learningDelivery => cache.Add(BuildLearningDelivery(learningDelivery, ukprn, learnRefNumber)));
            });

            var learningDeliveryPeriodisedValues = learners.SelectMany(l => l.LearningDeliveries.Select(ld =>
                                                                                                        new FundModelLearningDeliveryPeriodisedValue <List <LearningDeliveryPeriodisedValue> >(fm81Global.UKPRN, l.LearnRefNumber, ld.AimSeqNumber.Value, ld.LearningDeliveryPeriodisedValues)));

            cache.AddRange(BuildLearningDeliveryPeriods(learningDeliveryPeriodisedValues));

            learningDeliveryPeriodisedValues.NullSafeForEach(ldpv => ldpv.LearningDeliveryPeriodisedValue.NullSafeForEach(learningDeliveryPeriodisedValue => cache.Add(BuildLearningDeliveryPeriodisedValue(learningDeliveryPeriodisedValue, ukprn, ldpv.AimSeqNumber, ldpv.LearnRefNumber))));
        }
コード例 #7
0
 public void MapData(IDataStoreCache cache, FM36Global fm36Global, IDataStoreContext dataStoreContext)
 {
     cache.AddRange(BuildAppsEarningsHistory(fm36Global, dataStoreContext.CollectionPeriod, dataStoreContext.CollectionYear));
 }
コード例 #8
0
 public void MapData(IDataStoreCache cache, IDataStoreContext dataStoreContext, IEnumerable <ValidationError> validationErrors, IEnumerable <ValidationRule> rules, ILooseMessage message)
 {
     cache.AddRange(BuildValidationErrors(dataStoreContext, validationErrors, rules, message));
 }
コード例 #9
0
        private void PopulateInvalidLearners(IDataStoreCache cache, int ukprn, ILooseHeader header, IReadOnlyCollection <ILooseSourceFile> sourceFileCollection, IEnumerable <ILooseLearner> learners, IEnumerable <ILooseLearnerDestinationAndProgression> learnerDestinationAndProgressions)
        {
            var source = header.SourceEntity;

            int sourceFileId                        = 1;
            int learnerId                           = 1;
            int learnerDeliveryId                   = 1;
            int learnerEmploymentStatusId           = 1;
            int learnerEmploymentStatusMonitoringId = 1;
            int learningDeliveryHEId                = 1;
            int learnerDeliveryFamId                = 1;
            int appFinRecordId                      = 1;
            int learningDeliveryWorkPlacementId     = 1;
            int learnerFAMId                        = 1;
            int learnerHEId                         = 1;
            int learnerHEFinancialSupportId         = 1;
            int providerSpecLearnerMonitoringId     = 1;
            int providerSpecDeliveryMonitoringId    = 1;
            int contactPreferenceId                 = 1;
            int lLDDandHealthProblemID              = 1;
            int learnerDestinationandProgressionId  = 1;
            int dPOutcomeId                         = 1;

            cache.AddRange(BuildCollectionDetails(ukprn, header));
            cache.AddRange(BuildLearningProviders(ukprn));
            cache.AddRange(BuildSources(ukprn, source));

            if (sourceFileCollection == null)
            {
                cache.Add(new List <SourceFile>());
            }
            else
            {
                sourceFileCollection.NullSafeForEach(sourceFile => cache.Add(BuildSourceFiles(ukprn, sourceFile, sourceFileId++)));
            }

            learners.NullSafeForEach(learner =>
            {
                cache.Add(BuildInvalidLearner(ukprn, learner, learnerId));

                learner.ContactPreferences.NullSafeForEach(
                    contactPreference =>
                    cache.Add(BuildContactPreference(ukprn, learner, contactPreference, learnerId, contactPreferenceId++)));

                learner.LearningDeliveries.NullSafeForEach(learningDelivery =>
                {
                    cache.Add(BuildLearningDelivery(ukprn, learner, learningDelivery, learnerId, learnerDeliveryId));

                    learningDelivery.LearningDeliveryHEs.NullSafeForEach(learningDeliveryHE => cache.Add(BuildLearningDeliveryHERecord(ukprn, learner, learningDelivery, learningDeliveryHE, learningDeliveryHEId++)));

                    learningDelivery.AppFinRecords.NullSafeForEach(
                        appFinRecord =>
                        cache.Add(BuildLearningDeliveryAppFinRecord(ukprn, learner, learningDelivery, appFinRecord, learnerDeliveryId, appFinRecordId++)));

                    learningDelivery.LearningDeliveryFAMs.NullSafeForEach(
                        famRecord =>
                        cache.Add(BuildLearningDeliveryFAMRecord(ukprn, learner, learningDelivery, famRecord, learnerDeliveryId, learnerDeliveryFamId++)));

                    learningDelivery.LearningDeliveryWorkPlacements.NullSafeForEach(workPlacement =>
                                                                                    cache.Add(BuildLearningDeliveryWorkPlacement(ukprn, learner, learningDelivery, workPlacement, learnerDeliveryId, learningDeliveryWorkPlacementId++)));

                    learningDelivery.ProviderSpecDeliveryMonitorings.NullSafeForEach(monitoring =>
                                                                                     cache.Add(BuildProviderSpecDeliveryMonitoring(ukprn, learner, learningDelivery, monitoring, learnerDeliveryId, providerSpecDeliveryMonitoringId++)));

                    learnerDeliveryId++;
                });

                learner.LearnerEmploymentStatuses.NullSafeForEach(employmentStatus =>
                {
                    cache.Add(BuildLearnerEmploymentStatus(ukprn, learner, employmentStatus, learnerId, learnerEmploymentStatusId));
                    employmentStatus.EmploymentStatusMonitorings.NullSafeForEach(monitoring =>
                                                                                 cache.Add(BuildEmploymentStatusMonitoring(ukprn, learner, employmentStatus, monitoring, learnerEmploymentStatusId, learnerEmploymentStatusMonitoringId++)));

                    learnerEmploymentStatusId++;
                });

                learner.LearnerFAMs.NullSafeForEach(fam => cache.Add(BuildLearnerFAM(ukprn, learner, fam, learnerId, learnerFAMId++)));

                learner.LearnerHEs.NullSafeForEach(learnerHE =>
                {
                    cache.Add(BuildLearnerHE(ukprn, learner, learnerHE, learnerId, learnerHEId++));
                    learnerHE.LearnerHEFinancialSupports.NullSafeForEach(support => cache.Add(BuildLearnerHEFinancialSupport(ukprn, learner, support, learnerHEFinancialSupportId++)));
                });

                learner.LLDDAndHealthProblems.NullSafeForEach(problem => cache.Add(BuildLLDDAndHealthProblem(ukprn, learner, problem, learnerId, lLDDandHealthProblemID++)));

                learner.ProviderSpecLearnerMonitorings.NullSafeForEach(monitoring => cache.Add(BuildProviderSpecLearnerMonitorings(ukprn, learner, monitoring, learnerId, providerSpecLearnerMonitoringId++)));

                learnerId++;
            });

            learnerDestinationAndProgressions.NullSafeForEach(learnerDestinationAndProgression =>
            {
                cache.Add(BuildLearnerDestinationandProgression(ukprn, learnerDestinationAndProgression, learnerDestinationandProgressionId));

                learnerDestinationAndProgression.DPOutcomes.NullSafeForEach(dpOutcome => cache.Add(BuildDpOutcome(ukprn, learnerDestinationAndProgression, dpOutcome, dPOutcomeId++, learnerDestinationandProgressionId)));

                learnerDestinationandProgressionId++;
            });
        }