private async Task <string> GetCsv(IReportServiceContext reportServiceContext, CancellationToken cancellationToken) { Task <IMessage> ilrFileTask = _ilrProviderService.GetIlrFile(reportServiceContext, cancellationToken); Task <ALBGlobal> albDataTask = _allbProviderService.GetAllbData(reportServiceContext, cancellationToken); Task <List <string> > validLearnersTask = _validLearnersService.GetLearnersAsync(reportServiceContext, cancellationToken); await Task.WhenAll(ilrFileTask, albDataTask, validLearnersTask); if (cancellationToken.IsCancellationRequested) { return(null); } if (validLearnersTask.Result == null) { return(null); } string[] learnAimRefs = ilrFileTask.Result?.Learners?.Where(x => validLearnersTask.Result.Contains(x.LearnRefNumber)) .SelectMany(x => x.LearningDeliveries).Select(x => x.LearnAimRef).Distinct().ToArray(); Dictionary <string, LarsLearningDelivery> larsLearningDeliveries = await _larsProviderService.GetLearningDeliveriesAsync(learnAimRefs, cancellationToken); if (larsLearningDeliveries == null) { return(null); } if (cancellationToken.IsCancellationRequested) { return(null); } List <string> ilrError = new List <string>(); List <string> larsError = new List <string>(); List <string> albLearnerError = new List <string>(); List <AllbOccupancyModel> models = new List <AllbOccupancyModel>(validLearnersTask.Result.Count); foreach (string validLearnerRefNum in validLearnersTask.Result) { var learner = ilrFileTask.Result?.Learners?.SingleOrDefault(x => string.Equals(x.LearnRefNumber, validLearnerRefNum, StringComparison.OrdinalIgnoreCase)); if (learner == null) { ilrError.Add(validLearnerRefNum); continue; } ALBLearner albLearner = albDataTask.Result?.Learners?.SingleOrDefault(x => string.Equals(x.LearnRefNumber, validLearnerRefNum, StringComparison.OrdinalIgnoreCase)); if (albLearner == null) { albLearnerError.Add(validLearnerRefNum); continue; } if (learner.LearningDeliveries == null) { ilrError.Add(validLearnerRefNum); continue; } foreach (ILearningDelivery learningDelivery in learner.LearningDeliveries) { LearningDelivery albLearningDelivery = albLearner?.LearningDeliveries ?.SingleOrDefault(x => x.AimSeqNumber == learningDelivery.AimSeqNumber); if (!ValidAllbLearningDelivery(learningDelivery, albLearningDelivery)) { continue; } if (!larsLearningDeliveries.TryGetValue(learningDelivery.LearnAimRef, out LarsLearningDelivery larsModel)) { larsError.Add(validLearnerRefNum); continue; } LearningDeliveryValue albLearningDeliveryValue = albLearningDelivery?.LearningDeliveryValue; LearningDeliveryPeriodisedValue albSupportPaymentObj = albLearningDelivery?.LearningDeliveryPeriodisedValues?.SingleOrDefault(x => string.Equals(x.AttributeName, AlbSupportPayment, StringComparison.OrdinalIgnoreCase)); LearningDeliveryPeriodisedValue albAreaUpliftOnProgPaymentObj = albLearningDelivery?.LearningDeliveryPeriodisedValues?.SingleOrDefault(x => string.Equals(x.AttributeName, AlbAreaUpliftOnProgPayment, StringComparison.OrdinalIgnoreCase)); LearningDeliveryPeriodisedValue albAreaUpliftBalPaymentObj = albLearningDelivery?.LearningDeliveryPeriodisedValues?.SingleOrDefault(x => string.Equals(x.AttributeName, AlbAreaUpliftBalPayment, StringComparison.OrdinalIgnoreCase)); ILearningDeliveryFAM[] alb = learningDelivery.LearningDeliveryFAMs?.Where(x => string.Equals(x.LearnDelFAMType, "ALB", StringComparison.OrdinalIgnoreCase)).ToArray(); LearningDeliveryPeriodisedValue[] payments = albLearningDelivery?.LearningDeliveryPeriodisedValues?.Where(IsPayment).ToArray(); LearningDeliveryPeriodisedValue albCode = albLearningDelivery?.LearningDeliveryPeriodisedValues?.SingleOrDefault(x => string.Equals(x.AttributeName, AlbCode, StringComparison.OrdinalIgnoreCase)); var ldms = _stringUtilitiesService.GetArrayEntries(learningDelivery.LearningDeliveryFAMs?.Where(x => string.Equals(x.LearnDelFAMType, "LDM", StringComparison.OrdinalIgnoreCase)), 4); string albBursaryFunding = string.Empty, albDateFrom = string.Empty, albDateTo = string.Empty; if (alb != null && alb.Any()) { albBursaryFunding = alb.Max(x => _stringUtilitiesService.TryGetInt(x.LearnDelFAMCode, 0)).ToString(); albDateFrom = _stringUtilitiesService.GetDateTimeAsString(alb.Min(x => x.LearnDelFAMDateFromNullable ?? DateTime.MinValue), string.Empty, DateTime.MinValue); albDateTo = _stringUtilitiesService.GetDateTimeAsString(alb.Max(x => x.LearnDelFAMDateToNullable ?? DateTime.MinValue), string.Empty, DateTime.MinValue); } models.Add(new AllbOccupancyModel { LearnRefNumber = learner.LearnRefNumber, Uln = learner.ULN, DateOfBirth = learner.DateOfBirthNullable?.ToString("dd/MM/yyyy"), PreMergerUkprn = learner.PrevUKPRNNullable, CampId = learner.CampId, ProvSpecLearnMonA = learner.ProviderSpecLearnerMonitorings ?.FirstOrDefault(x => string.Equals(x.ProvSpecLearnMonOccur, "A", StringComparison.OrdinalIgnoreCase))?.ProvSpecLearnMon, ProvSpecLearnMonB = learner.ProviderSpecLearnerMonitorings ?.FirstOrDefault(x => string.Equals(x.ProvSpecLearnMonOccur, "B", StringComparison.OrdinalIgnoreCase))?.ProvSpecLearnMon, AimSeqNumber = learningDelivery.AimSeqNumber, LearnAimRef = learningDelivery.LearnAimRef, LearnAimRefTitle = larsModel.LearningAimTitle, SwSupAimId = learningDelivery.SWSupAimId, WeightedRate = albLearningDeliveryValue?.WeightedRate, ApplicProgWeightFact = albLearningDeliveryValue?.ApplicProgWeightFact, NotionalNvqLevelV2 = larsModel.NotionalNvqLevel, SectorSubjectAreaTier2 = larsModel.Tier2SectorSubjectArea, AimType = learningDelivery.AimType, FundingModel = learningDelivery.FundModel, PriorLearnFundAdj = learningDelivery.PriorLearnFundAdjNullable, OtherFundAdj = learningDelivery.OtherFundAdjNullable, OrigLearnStartDate = learningDelivery.OrigLearnStartDateNullable?.ToString("dd/MM/yyyy"), LearnStartDate = learningDelivery.LearnStartDate.ToString("dd/MM/yyyy"), LearnPlanEndDate = learningDelivery.LearnPlanEndDate.ToString("dd/MM/yyyy"), CompStatus = learningDelivery.CompStatus, LearnActEndDate = learningDelivery.LearnActEndDateNullable?.ToString("dd/MM/yyyy"), Outcome = learningDelivery.OutcomeNullable, LearnDelFamCodeAdl = learningDelivery.LearningDeliveryFAMs?.SingleOrDefault(x => string.Equals(x.LearnDelFAMType, "ADL", StringComparison.OrdinalIgnoreCase))?.LearnDelFAMCode, AlbBursaryFunding = albBursaryFunding, AlbDateFrom = albDateFrom, AlbDateTo = albDateTo, LearnDelMonA = ldms[0], LearnDelMonB = ldms[1], LearnDelMonC = ldms[2], LearnDelMonD = ldms[3], ProvSpecDelMonA = learningDelivery.ProviderSpecDeliveryMonitorings?.SingleOrDefault(x => string.Equals(x.ProvSpecDelMonOccur, "A", StringComparison.OrdinalIgnoreCase))?.ProvSpecDelMon, ProvSpecDelMonB = learningDelivery.ProviderSpecDeliveryMonitorings?.SingleOrDefault(x => string.Equals(x.ProvSpecDelMonOccur, "B", StringComparison.OrdinalIgnoreCase))?.ProvSpecDelMon, ProvSpecDelMonC = learningDelivery.ProviderSpecDeliveryMonitorings?.SingleOrDefault(x => string.Equals(x.ProvSpecDelMonOccur, "C", StringComparison.OrdinalIgnoreCase))?.ProvSpecDelMon, ProvSpecDelMonD = learningDelivery.ProviderSpecDeliveryMonitorings?.SingleOrDefault(x => string.Equals(x.ProvSpecDelMonOccur, "D", StringComparison.OrdinalIgnoreCase))?.ProvSpecDelMon, PartnerUkprn = learningDelivery.PartnerUKPRNNullable, DelLocPostCode = learningDelivery.DelLocPostCode, AreaCodeFactAdj = albLearningDeliveryValue?.AreaCostFactAdj, FundLine = albLearningDeliveryValue?.FundLine, LiabilityDate = albLearningDeliveryValue?.LiabilityDate?.ToString("dd/MM/yyyy"), PlannedNumOnProgInstalm = albLearningDeliveryValue?.PlannedNumOnProgInstalm, ApplicFactDate = albLearningDeliveryValue?.ApplicFactDate?.ToString("dd/MM/yyyy"), Period1AlbCode = albCode?.Period1, Period1AlbPayment = albSupportPaymentObj?.Period1, Period1AlbOnProgPayment = albAreaUpliftOnProgPaymentObj?.Period1 ?? 0, Period1AlbAreaUplift = albAreaUpliftBalPaymentObj?.Period1 ?? 0, Period1AlbTotal = payments?.Sum(x => x.Period1) ?? 0, Period2AlbCode = albCode?.Period2 ?? 0, Period2AlbPayment = albSupportPaymentObj?.Period2 ?? 0, Period2AlbOnProgPayment = albAreaUpliftOnProgPaymentObj?.Period2 ?? 0, Period2AlbBalPayment = albAreaUpliftBalPaymentObj?.Period2 ?? 0, Period2AlbTotal = payments?.Sum(x => x.Period2) ?? 0, Period3AlbCode = albCode?.Period3 ?? 0, Period3AlbPayment = albSupportPaymentObj?.Period3 ?? 0, Period3AlbOnProgPayment = albAreaUpliftOnProgPaymentObj?.Period3 ?? 0, Period3AlbBalPayment = albAreaUpliftBalPaymentObj?.Period3 ?? 0, Period3AlbTotal = payments?.Sum(x => x.Period3) ?? 0, Period4AlbCode = albCode?.Period4 ?? 0, Period4AlbPayment = albSupportPaymentObj?.Period4 ?? 0, Period4AlbOnProgPayment = albAreaUpliftOnProgPaymentObj?.Period4 ?? 0, Period4AlbBalPayment = albAreaUpliftBalPaymentObj?.Period4 ?? 0, Period4AlbTotal = payments?.Sum(x => x.Period4) ?? 0, Period5AlbCode = albCode?.Period5 ?? 0, Period5AlbPayment = albSupportPaymentObj?.Period5 ?? 0, Period5AlbOnProgPayment = albAreaUpliftOnProgPaymentObj?.Period5 ?? 0, Period5AlbBalPayment = albAreaUpliftBalPaymentObj?.Period5 ?? 0, Period5AlbTotal = payments?.Sum(x => x.Period5) ?? 0, Period6AlbCode = albCode?.Period6 ?? 0, Period6AlbPayment = albSupportPaymentObj?.Period6 ?? 0, Period6AlbOnProgPayment = albAreaUpliftOnProgPaymentObj?.Period6 ?? 0, Period6AlbBalPayment = albAreaUpliftBalPaymentObj?.Period6 ?? 0, Period6AlbTotal = payments?.Sum(x => x.Period6) ?? 0, Period7AlbCode = albCode?.Period7 ?? 0, Period7AlbPayment = albSupportPaymentObj?.Period7 ?? 0, Period7AlbOnProgPayment = albAreaUpliftOnProgPaymentObj?.Period7 ?? 0, Period7AlbBalPayment = albAreaUpliftBalPaymentObj?.Period7 ?? 0, Period7AlbTotal = payments?.Sum(x => x.Period7) ?? 0, Period8AlbCode = albCode?.Period8 ?? 0, Period8AlbPayment = albSupportPaymentObj?.Period8 ?? 0, Period8AlbOnProgPayment = albAreaUpliftOnProgPaymentObj?.Period8 ?? 0, Period8AlbBalPayment = albAreaUpliftBalPaymentObj?.Period8 ?? 0, Period8AlbTotal = payments?.Sum(x => x.Period8) ?? 0, Period9AlbCode = albCode?.Period9 ?? 0, Period9AlbPayment = albSupportPaymentObj?.Period9 ?? 0, Period9AlbOnProgPayment = albAreaUpliftOnProgPaymentObj?.Period9 ?? 0, Period9AlbBalPayment = albAreaUpliftBalPaymentObj?.Period9 ?? 0, Period9AlbTotal = payments?.Sum(x => x.Period9) ?? 0, Period10AlbCode = albCode?.Period10 ?? 0, Period10AlbPayment = albSupportPaymentObj?.Period10 ?? 0, Period10AlbOnProgPayment = albAreaUpliftOnProgPaymentObj?.Period10 ?? 0, Period10AlbBalPayment = albAreaUpliftBalPaymentObj?.Period10 ?? 0, Period10AlbTotal = payments?.Sum(x => x.Period10) ?? 0, Period11AlbCode = albCode?.Period11 ?? 0, Period11AlbPayment = albSupportPaymentObj?.Period11 ?? 0, Period11AlbOnProgPayment = albAreaUpliftOnProgPaymentObj?.Period11 ?? 0, Period11AlbBalPayment = albAreaUpliftBalPaymentObj?.Period11 ?? 0, Period11AlbTotal = payments?.Sum(x => x.Period11) ?? 0, Period12AlbCode = albCode?.Period12 ?? 0, Period12AlbPayment = albSupportPaymentObj?.Period12 ?? 0, Period12AlbOnProgPayment = albAreaUpliftOnProgPaymentObj?.Period12 ?? 0, Period12AlbBalPayment = albAreaUpliftBalPaymentObj?.Period12 ?? 0, Period12AlbTotal = payments?.Sum(x => x.Period12) ?? 0, TotalAlbSupportPayment = (albSupportPaymentObj?.Period1 ?? 0) + (albSupportPaymentObj?.Period2 ?? 0) + (albSupportPaymentObj?.Period3 ?? 0) + (albSupportPaymentObj?.Period4 ?? 0) + (albSupportPaymentObj?.Period5 ?? 0) + (albSupportPaymentObj?.Period6 ?? 0) + (albSupportPaymentObj?.Period7 ?? 0) + (albSupportPaymentObj?.Period8 ?? 0) + (albSupportPaymentObj?.Period9 ?? 0) + (albSupportPaymentObj?.Period10 ?? 0) + (albSupportPaymentObj?.Period11 ?? 0) + (albSupportPaymentObj?.Period12 ?? 0), TotalAlbAreaUplift = (albAreaUpliftOnProgPaymentObj?.Period1 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period2 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period3 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period4 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period5 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period6 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period7 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period8 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period9 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period10 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period11 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period12 ?? 0), TotalAlbBalPayment = (albAreaUpliftBalPaymentObj?.Period1 ?? 0) + (albAreaUpliftBalPaymentObj?.Period2 ?? 0) + (albAreaUpliftBalPaymentObj?.Period3 ?? 0) + (albAreaUpliftBalPaymentObj?.Period4 ?? 0) + (albAreaUpliftBalPaymentObj?.Period5 ?? 0) + (albAreaUpliftBalPaymentObj?.Period6 ?? 0) + (albAreaUpliftBalPaymentObj?.Period7 ?? 0) + (albAreaUpliftBalPaymentObj?.Period8 ?? 0) + (albAreaUpliftBalPaymentObj?.Period9 ?? 0) + (albAreaUpliftBalPaymentObj?.Period10 ?? 0) + (albAreaUpliftBalPaymentObj?.Period11 ?? 0) + (albAreaUpliftBalPaymentObj?.Period12 ?? 0), TotalEarnedCash = (albSupportPaymentObj?.Period1 ?? 0) + (albSupportPaymentObj?.Period2 ?? 0) + (albSupportPaymentObj?.Period3 ?? 0) + (albSupportPaymentObj?.Period4 ?? 0) + (albSupportPaymentObj?.Period5 ?? 0) + (albSupportPaymentObj?.Period6 ?? 0) + (albSupportPaymentObj?.Period7 ?? 0) + (albSupportPaymentObj?.Period8 ?? 0) + (albSupportPaymentObj?.Period9 ?? 0) + (albSupportPaymentObj?.Period10 ?? 0) + (albSupportPaymentObj?.Period11 ?? 0) + (albSupportPaymentObj?.Period12 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period1 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period2 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period3 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period4 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period5 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period6 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period7 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period8 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period9 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period10 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period11 ?? 0) + (albAreaUpliftOnProgPaymentObj?.Period12 ?? 0) + (albAreaUpliftBalPaymentObj?.Period1 ?? 0) + (albAreaUpliftBalPaymentObj?.Period2 ?? 0) + (albAreaUpliftBalPaymentObj?.Period3 ?? 0) + (albAreaUpliftBalPaymentObj?.Period4 ?? 0) + (albAreaUpliftBalPaymentObj?.Period5 ?? 0) + (albAreaUpliftBalPaymentObj?.Period6 ?? 0) + (albAreaUpliftBalPaymentObj?.Period7 ?? 0) + (albAreaUpliftBalPaymentObj?.Period8 ?? 0) + (albAreaUpliftBalPaymentObj?.Period9 ?? 0) + (albAreaUpliftBalPaymentObj?.Period10 ?? 0) + (albAreaUpliftBalPaymentObj?.Period11 ?? 0) + (albAreaUpliftBalPaymentObj?.Period12 ?? 0) }); } } CheckWarnings(ilrError, larsError, albLearnerError); models.Sort(AllbOccupancyModelComparer); return(WriteResults(models)); }
public void Build_SingleRow() { var reportServiceContext = Mock.Of <IReportServiceContext>(); var dependentDataMock = new Mock <IReportServiceDependentData>(); var learningDeliveryFams = new List <ILearningDeliveryFAM>() { new TestLearningDeliveryFAM() }; var providerSpecDeliveryMonitorings = new List <IProviderSpecDeliveryMonitoring>() { new TestProviderSpecDeliveryMonitoring(), }; var appFinRecords = new List <IAppFinRecord>() { new TestAppFinRecord(), }; var learningDelivery = new TestLearningDelivery() { FundModel = 81, LearnAimRef = "learnAimRef", AimSeqNumber = 1, AimType = 1, ProgTypeNullable = 25, LearningDeliveryFAMs = learningDeliveryFams, ProviderSpecDeliveryMonitorings = providerSpecDeliveryMonitorings, AppFinRecords = appFinRecords }; var providerSpecLearnerMonitorings = new List <IProviderSpecLearnerMonitoring>() { new TestProviderSpecLearnerMonitoring(), }; var learner = new TestLearner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, ProviderSpecLearnerMonitorings = providerSpecLearnerMonitorings, }; var message = new TestMessage() { Learners = new List <ILearner>() { learner } }; var larsLearningDelivery = new LARSLearningDelivery() { LearnAimRef = "learnAimRef" }; var referenceDataRoot = new ReferenceDataRoot() { LARSLearningDeliveries = new List <LARSLearningDelivery>() { larsLearningDelivery } }; var fm81LearningDeliveryValue = new LearningDeliveryValue(); var fm81LearningDelivery = new LearningDelivery() { AimSeqNumber = 1, LearningDeliveryValues = fm81LearningDeliveryValue, LearningDeliveryPeriodisedValues = new List <LearningDeliveryPeriodisedValue>() { BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81CoreGovContPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81MathEngOnProgPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81MathEngBalPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81LearnSuppFundCash), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81SmallBusPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81YoungAppPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm81AchPayment), } }; var fm81Global = new FM81Global() { Learners = new List <FM81Learner>() { new FM81Learner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <LearningDelivery>() { fm81LearningDelivery, } } } }; dependentDataMock.Setup(d => d.Get <IMessage>()).Returns(message); dependentDataMock.Setup(d => d.Get <ReferenceDataRoot>()).Returns(referenceDataRoot); dependentDataMock.Setup(d => d.Get <FM81Global>()).Returns(fm81Global); var providerSpecDeliveryMonitoringModel = new ProviderSpecDeliveryMonitoringModel(); var providerSpecLearnerMonitoringModel = new ProviderSpecLearnerMonitoringModel(); var learningDeliveryFamsModel = new LearningDeliveryFAMsModel(); var ilrModelMapperMock = new Mock <IIlrModelMapper>(); ilrModelMapperMock.Setup(m => m.MapLearningDeliveryFAMs(learningDeliveryFams)).Returns(learningDeliveryFamsModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecDeliveryMonitorings(providerSpecDeliveryMonitorings)).Returns(providerSpecDeliveryMonitoringModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecLearnerMonitorings(providerSpecLearnerMonitorings)).Returns(providerSpecLearnerMonitoringModel); var result = NewBuilder(ilrModelMapperMock.Object).Build(reportServiceContext, dependentDataMock.Object).ToList(); result.Should().HaveCount(1); var row = result[0]; row.Learner.Should().Be(learner); row.LearningDelivery.Should().Be(learningDelivery); row.LarsLearningDelivery.Should().Be(larsLearningDelivery); row.Fm81LearningDelivery.Should().Be(fm81LearningDeliveryValue); row.ProviderSpecDeliveryMonitoring.Should().Be(providerSpecDeliveryMonitoringModel); row.ProviderSpecLearnerMonitoring.Should().Be(providerSpecLearnerMonitoringModel); row.PeriodisedValues.Should().NotBeNull(); row.LearningDeliveryFAMs.Should().Be(learningDeliveryFamsModel); }
public void Build_SingleRow() { var reportServiceContext = Mock.Of <IReportServiceContext>(); var dependentDataMock = new Mock <IReportServiceDependentData>(); var adlLearningDeliveryFam = new Mock <ILearningDeliveryFAM>(); adlLearningDeliveryFam.SetupGet(fam => fam.LearnDelFAMType).Returns("ADL"); adlLearningDeliveryFam.SetupGet(fam => fam.LearnDelFAMCode).Returns("1"); var albLearningDeliveryFam = new Mock <ILearningDeliveryFAM>(); albLearningDeliveryFam.SetupGet(fam => fam.LearnDelFAMType).Returns("ALB"); var learningDeliveryFams = new List <ILearningDeliveryFAM>() { albLearningDeliveryFam.Object, adlLearningDeliveryFam.Object, }; var providerSpecDeliveryMonitorings = new List <IProviderSpecDeliveryMonitoring>() { new TestProviderSpecDeliveryMonitoring(), }; var learningDelivery = new TestLearningDelivery() { FundModel = 99, LearnAimRef = "learnAimRef", AimSeqNumber = 1, LearningDeliveryFAMs = learningDeliveryFams, ProviderSpecDeliveryMonitorings = providerSpecDeliveryMonitorings }; var providerSpecLearnerMonitorings = new List <IProviderSpecLearnerMonitoring>() { new TestProviderSpecLearnerMonitoring(), }; var learner = new TestLearner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, ProviderSpecLearnerMonitorings = providerSpecLearnerMonitorings, }; var message = new TestMessage() { Learners = new List <ILearner>() { learner } }; var larsLearningDelivery = new LARSLearningDelivery() { LearnAimRef = "learnAimRef" }; var referenceDataRoot = new ReferenceDataRoot() { LARSLearningDeliveries = new List <LARSLearningDelivery>() { larsLearningDelivery } }; var albLearningDeliveryValue = new LearningDeliveryValue(); var albLearningDelivery = new LearningDelivery() { AimSeqNumber = 1, LearningDeliveryValue = albLearningDeliveryValue, LearningDeliveryPeriodisedValues = new List <LearningDeliveryPeriodisedValue>() { BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35OnProgPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35AchievePayPct), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35AchievePayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35EmpOutcomePay), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35BalancePayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35LearnSuppFundCash), } }; var fm35Global = new ALBGlobal() { Learners = new List <ALBLearner>() { new ALBLearner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <LearningDelivery>() { albLearningDelivery, } } } }; dependentDataMock.Setup(d => d.Get <IMessage>()).Returns(message); dependentDataMock.Setup(d => d.Get <ReferenceDataRoot>()).Returns(referenceDataRoot); dependentDataMock.Setup(d => d.Get <ALBGlobal>()).Returns(fm35Global); var providerSpecDeliveryMonitoringModel = new ProviderSpecDeliveryMonitoringModel(); var providerSpecLearnerMonitoringModel = new ProviderSpecLearnerMonitoringModel(); var learningDeliveryFamsModel = new LearningDeliveryFAMsModel(); var ilrModelMapperMock = new Mock <IIlrModelMapper>(); ilrModelMapperMock.Setup(m => m.MapLearningDeliveryFAMs(learningDeliveryFams)).Returns(learningDeliveryFamsModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecDeliveryMonitorings(providerSpecDeliveryMonitorings)).Returns(providerSpecDeliveryMonitoringModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecLearnerMonitorings(providerSpecLearnerMonitorings)).Returns(providerSpecLearnerMonitoringModel); var result = NewBuilder(ilrModelMapperMock.Object).Build(reportServiceContext, dependentDataMock.Object).ToList(); result.Should().HaveCount(1); var row = result[0]; row.Learner.Should().Be(learner); row.LearningDelivery.Should().Be(learningDelivery); row.LarsLearningDelivery.Should().Be(larsLearningDelivery); row.Fm99LearningDelivery.Should().Be(albLearningDeliveryValue); row.ProviderSpecDeliveryMonitoring.Should().Be(providerSpecDeliveryMonitoringModel); row.ProviderSpecLearnerMonitoring.Should().Be(providerSpecLearnerMonitoringModel); row.PeriodisedValues.Should().NotBeNull(); row.LearningDeliveryFAMs.Should().Be(learningDeliveryFamsModel); }
public void Build_SingleRow() { var reportServiceContext = Mock.Of <IReportServiceContext>(); var dependentDataMock = new Mock <IReportServiceDependentData>(); var learningDeliveryFams = new List <ILearningDeliveryFAM>() { new TestLearningDeliveryFAM() { LearnDelFAMType = "SOF", LearnDelFAMCode = "110", } }; var providerSpecDeliveryMonitorings = new List <IProviderSpecDeliveryMonitoring>() { new TestProviderSpecDeliveryMonitoring(), }; var learningDelivery = new TestLearningDelivery() { LearnAimRef = "learnAimRef", AimSeqNumber = 1, LSDPostcode = "Postcode1", LearningDeliveryFAMs = learningDeliveryFams, PartnerUKPRNNullable = 12345678, ProviderSpecDeliveryMonitorings = providerSpecDeliveryMonitorings }; var providerSpecLearnerMonitorings = new List <IProviderSpecLearnerMonitoring>() { new TestProviderSpecLearnerMonitoring(), }; var learner = new TestLearner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <ILearningDelivery>() { learningDelivery }, ProviderSpecLearnerMonitorings = providerSpecLearnerMonitorings, }; var message = new TestMessage() { Learners = new List <ILearner>() { learner } }; var larsLearningDelivery = new LARSLearningDelivery() { LearnAimRef = "learnAimRef", LARSLearningDeliveryCategories = new HashSet <LARSLearningDeliveryCategory> { new LARSLearningDeliveryCategory { CategoryRef = 123 } } }; var mcaGlaSofLookup = new McaGlaSofLookup() { SofCode = "110", McaGlaShortCode = "GMCA", McaGlaFullName = "GMCA Full", }; var referenceDataRoot = new ReferenceDataRoot() { LARSLearningDeliveries = new List <LARSLearningDelivery>() { larsLearningDelivery }, Postcodes = new List <Postcode> { new Postcode { PostCode = "Postcode1" } }, DevolvedPostocdes = new DevolvedPostcodes() { McaGlaSofLookups = new List <McaGlaSofLookup>() { mcaGlaSofLookup } }, Organisations = new List <Organisation>() { new Organisation() { UKPRN = 12345678, Name = "Partner Provider" } } }; var fm35LearningDeliveryValue = new LearningDeliveryValue(); var fm35LearningDelivery = new LearningDelivery() { AimSeqNumber = 1, LearningDeliveryValue = fm35LearningDeliveryValue, LearningDeliveryPeriodisedValues = new List <LearningDeliveryPeriodisedValue>() { BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35OnProgPayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35AchievePayPct), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35AchievePayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35EmpOutcomePay), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35BalancePayment), BuildPeriodisedValuesForAttribute(AttributeConstants.Fm35LearnSuppFundCash), } }; var fm35Global = new FM35Global() { Learners = new List <FM35Learner>() { new FM35Learner() { LearnRefNumber = "LearnRefNumber", LearningDeliveries = new List <LearningDelivery>() { fm35LearningDelivery, } } } }; dependentDataMock.Setup(d => d.Get <IMessage>()).Returns(message); dependentDataMock.Setup(d => d.Get <ReferenceDataRoot>()).Returns(referenceDataRoot); dependentDataMock.Setup(d => d.Get <FM35Global>()).Returns(fm35Global); var providerSpecDeliveryMonitoringModel = new ProviderSpecDeliveryMonitoringModel(); var providerSpecLearnerMonitoringModel = new ProviderSpecLearnerMonitoringModel(); var learningDeliveryFamsModel = new LearningDeliveryFAMsModel() { SOF = "110" }; var ilrModelMapperMock = new Mock <IIlrModelMapper>(); var academicYearServiceMock = new Mock <IAcademicYearService>(); ilrModelMapperMock.Setup(m => m.MapLearningDeliveryFAMs(learningDeliveryFams)).Returns(learningDeliveryFamsModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecDeliveryMonitorings(providerSpecDeliveryMonitorings)).Returns(providerSpecDeliveryMonitoringModel); ilrModelMapperMock.Setup(m => m.MapProviderSpecLearnerMonitorings(providerSpecLearnerMonitorings)).Returns(providerSpecLearnerMonitoringModel); var result = NewBuilder(ilrModelMapperMock.Object, academicYearServiceMock.Object).Build(reportServiceContext, dependentDataMock.Object).ToList(); result.Should().HaveCount(1); var row = result[0]; row.Learner.Should().Be(learner); row.LearningDelivery.Should().Be(learningDelivery); row.LarsLearningDelivery.Should().Be(larsLearningDelivery); row.Fm35LearningDelivery.Should().Be(fm35LearningDeliveryValue); row.ProviderSpecDeliveryMonitoring.Should().Be(providerSpecDeliveryMonitoringModel); row.ProviderSpecLearnerMonitoring.Should().Be(providerSpecLearnerMonitoringModel); row.PeriodisedValues.Should().NotBeNull(); row.LearningDeliveryFAMs.Should().Be(learningDeliveryFamsModel); row.McaGlaShortCode.Should().Be("GMCA"); }