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, IDataStoreContext dataStoreContext, IMessage message, IEnumerable <FM70Learner> learners, int ukprn) { var academicYear = $"20{dataStoreContext.CollectionYear.Substring(0, 2)}/{dataStoreContext.CollectionYear.Substring(2, 2)}"; var collectionReturnCode = dataStoreContext.CollectionPeriod; var collectionType = $"ILR{dataStoreContext.CollectionYear}"; cache.Add(BuildLatestProviderSubmission(ukprn, collectionReturnCode, collectionType)); if (learners == null) { return; } var conRefNumberDictionary = BuildConRefNumberDictionary(message); 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)))); learningDeliveryPeriodisedValues .NullSafeForEach(ldpv => ldpv.LearningDeliveryPeriodisedValue .NullSafeForEach(learningDeliveryPeriodisedValue => cache.Add(BuildFundingData(dataStoreContext, learningDeliveryPeriodisedValue, conRefNumberDictionary, ukprn, ldpv.AimSeqNumber, ldpv.LearnRefNumber, ldpv.EsfDeliverableCode, academicYear, collectionReturnCode, collectionType)))); }
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)))); }
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)))); }
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)))); }
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))); }); }
private void PopulateDataStoreCache(IDataStoreCache cache, ReferenceDataVersions referenceDataVersions, IDataStoreContext dataStoreContext) { cache.Add(BuildFileDetail(dataStoreContext, referenceDataVersions)); cache.Add(BuildProcessingData(dataStoreContext)); }
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++; }); }