public async Task <AppsMonthlyPaymentDASInfo> GetPaymentsInfoForAppsMonthlyPaymentReportAsync( int ukPrn, CancellationToken cancellationToken) { AppsMonthlyPaymentDASInfo appsMonthlyPaymentDasInfo = null; try { appsMonthlyPaymentDasInfo = new AppsMonthlyPaymentDASInfo { UkPrn = ukPrn, Payments = new List <AppsMonthlyPaymentDasPaymentModel>() }; cancellationToken.ThrowIfCancellationRequested(); using (var context = _dasPaymentsContextFactory()) { appsMonthlyPaymentDasInfo.Payments = await context.Payments .Where(x => x.Ukprn == ukPrn && x.AcademicYear == Generics.AcademicYear) .Select(payment => new AppsMonthlyPaymentDasPaymentModel { Ukprn = (int?)payment.Ukprn, LearnerReferenceNumber = payment.LearnerReferenceNumber, LearnerUln = payment.LearnerUln, LearningAimReference = payment.LearningAimReference, LearningStartDate = payment.LearningStartDate, LearningAimProgrammeType = payment.LearningAimProgrammeType, LearningAimStandardCode = payment.LearningAimStandardCode, LearningAimFrameworkCode = payment.LearningAimFrameworkCode, LearningAimPathwayCode = payment.LearningAimPathwayCode, LearningAimFundingLineType = payment.LearningAimFundingLineType, ReportingAimFundingLineType = payment.ReportingAimFundingLineType, PriceEpisodeIdentifier = payment.PriceEpisodeIdentifier, FundingSource = payment.FundingSource, TransactionType = payment.TransactionType, AcademicYear = payment.AcademicYear, CollectionPeriod = payment.CollectionPeriod, ContractType = payment.ContractType, DeliveryPeriod = payment.DeliveryPeriod, EarningEventId = payment.EarningEventId, Amount = payment.Amount, NonPaymentReason = payment.NonPaymentReason, ApprenticeshipId = payment.ApprenticeshipId }) .ToListAsync(cancellationToken); } } catch (Exception ex) { _logger.LogError("Failed to get Rulebase data", ex); throw; } return(appsMonthlyPaymentDasInfo); }
public async Task <AppsMonthlyPaymentDASInfo> GetPaymentsInfoForAppsMonthlyPaymentReportAsync(int ukPrn, CancellationToken cancellationToken) { var appsMonthlyPaymentDasInfo = new AppsMonthlyPaymentDASInfo { UkPrn = ukPrn, Payments = new List <AppsMonthlyPaymentDASPaymentInfo>() }; cancellationToken.ThrowIfCancellationRequested(); List <Payment> paymentsList; using (var context = _dasPaymentsContextFactory()) { paymentsList = await context.Payments.Where(x => x.Ukprn == ukPrn && x.FundingSource == FundingSource).ToListAsync(cancellationToken); } foreach (var payment in paymentsList) { var paymentInfo = new AppsMonthlyPaymentDASPaymentInfo { LearnerReferenceNumber = payment.LearnerReferenceNumber, LearnerUln = payment.LearnerUln, LearningAimReference = payment.LearningAimReference, LearningAimProgrammeType = payment.LearningAimProgrammeType, LearningAimStandardCode = payment.LearningAimStandardCode, LearningAimFrameworkCode = payment.LearningAimFrameworkCode, LearningAimPathwayCode = payment.LearningAimPathwayCode, Amount = payment.Amount, LearningAimFundingLineType = payment.LearningAimFundingLineType, PriceEpisodeIdentifier = payment.PriceEpisodeIdentifier, FundingSource = payment.FundingSource, TransactionType = payment.TransactionType, AcademicYear = payment.AcademicYear, CollectionPeriod = payment.CollectionPeriod, ContractType = payment.ContractType, DeliveryPeriod = payment.DeliveryPeriod }; appsMonthlyPaymentDasInfo.Payments.Add(paymentInfo); } return(appsMonthlyPaymentDasInfo); }
public IDictionary <LearnerLevelViewPaymentsKey, List <AppsMonthlyPaymentDasPaymentModel> > BuildPaymentInfoDictionary(AppsMonthlyPaymentDASInfo paymentsInfo) { return(paymentsInfo .Payments .GroupBy( p => new LearnerLevelViewPaymentsKey(p.LearnerReferenceNumber, p.ReportingAimFundingLineType), new LLVPaymentRecordKeyEqualityComparer()) .ToDictionary(k => k.Key, v => v.ToList())); }
private AppsMonthlyPaymentDASInfo BuildDasPaymentsModel(int ukPrn) { var appsMonthlyPaymentDasInfo = new AppsMonthlyPaymentDASInfo() { UkPrn = ukPrn }; appsMonthlyPaymentDasInfo.Payments = new List <AppsMonthlyPaymentDASPaymentInfo>(); for (byte i = 1; i < 14; i++) { var levyPayments = new AppsMonthlyPaymentDASPaymentInfo() { UkPrn = ukPrn, LearnerReferenceNumber = "A12345", LearningAimReference = "50117889", LearnerUln = 12345, LearningStartDate = new DateTime(2017, 06, 28), LearningAimProgrammeType = 1, LearningAimStandardCode = 1, LearningAimFrameworkCode = 1, LearningAimPathwayCode = 1, FundingSource = 1, TransactionType = 2, AcademicYear = 1819, Amount = 11, ContractType = 2, CollectionPeriod = i, DeliveryPeriod = 1, LearningAimFundingLineType = "16-18 Apprenticeship Non-Levy" }; var coInvestmentPayments = new AppsMonthlyPaymentDASPaymentInfo() { UkPrn = ukPrn, LearnerReferenceNumber = "A12345", LearningAimReference = "50117889", LearnerUln = 12345, LearningStartDate = new DateTime(2017, 06, 28), LearningAimProgrammeType = 1, LearningAimStandardCode = 1, LearningAimFrameworkCode = 1, LearningAimPathwayCode = 1, FundingSource = 2, TransactionType = 2, AcademicYear = 1819, Amount = 12, ContractType = 2, CollectionPeriod = i, DeliveryPeriod = 1, LearningAimFundingLineType = "16-18 Apprenticeship Non-Levy" }; var coInvestmentDueFromEmployerPayments = new AppsMonthlyPaymentDASPaymentInfo() { UkPrn = ukPrn, LearnerReferenceNumber = "A12345", LearningAimReference = "50117889", LearnerUln = 12345, LearningStartDate = new DateTime(2017, 06, 28), LearningAimProgrammeType = 1, LearningAimStandardCode = 1, LearningAimFrameworkCode = 1, LearningAimPathwayCode = 1, FundingSource = 3, TransactionType = 2, AcademicYear = 1819, Amount = 13, ContractType = 2, CollectionPeriod = i, DeliveryPeriod = 1, LearningAimFundingLineType = "16-18 Apprenticeship Non-Levy" }; var employerAdditionalPayments = new AppsMonthlyPaymentDASPaymentInfo() { UkPrn = ukPrn, LearnerReferenceNumber = "A12345", LearningAimReference = "50117889", LearnerUln = 12345, LearningStartDate = new DateTime(2017, 06, 28), LearningAimProgrammeType = 1, LearningAimStandardCode = 1, LearningAimFrameworkCode = 1, LearningAimPathwayCode = 1, FundingSource = 3, TransactionType = 4, AcademicYear = 1819, Amount = 14, ContractType = 2, CollectionPeriod = i, DeliveryPeriod = 1, LearningAimFundingLineType = "16-18 Apprenticeship Non-Levy" }; var providerAdditionalPayments = new AppsMonthlyPaymentDASPaymentInfo() { UkPrn = ukPrn, LearnerReferenceNumber = "A12345", LearningAimReference = "50117889", LearnerUln = 12345, LearningStartDate = new DateTime(2017, 06, 28), LearningAimProgrammeType = 1, LearningAimStandardCode = 1, LearningAimFrameworkCode = 1, LearningAimPathwayCode = 1, FundingSource = 3, TransactionType = 5, AcademicYear = 1819, Amount = 15, ContractType = 2, CollectionPeriod = i, DeliveryPeriod = 1, LearningAimFundingLineType = "16-18 Apprenticeship Non-Levy" }; var apprenticeAdditionalPayments = new AppsMonthlyPaymentDASPaymentInfo() { UkPrn = ukPrn, LearnerReferenceNumber = "A12345", LearningAimReference = "50117889", LearnerUln = 12345, LearningStartDate = new DateTime(2017, 06, 28), LearningAimProgrammeType = 1, LearningAimStandardCode = 1, LearningAimFrameworkCode = 1, LearningAimPathwayCode = 1, FundingSource = 3, TransactionType = 16, AcademicYear = 1819, Amount = 16, ContractType = 2, CollectionPeriod = i, DeliveryPeriod = 1, LearningAimFundingLineType = "16-18 Apprenticeship Non-Levy" }; var englishAndMathsPayments = new AppsMonthlyPaymentDASPaymentInfo() { UkPrn = ukPrn, LearnerReferenceNumber = "A12345", LearningAimReference = "50117889", LearnerUln = 12345, LearningStartDate = new DateTime(2017, 06, 28), LearningAimProgrammeType = 1, LearningAimStandardCode = 1, LearningAimFrameworkCode = 1, LearningAimPathwayCode = 1, FundingSource = 3, TransactionType = 13, AcademicYear = 1819, Amount = 17, ContractType = 2, CollectionPeriod = i, DeliveryPeriod = 1, LearningAimFundingLineType = "16-18 Apprenticeship Non-Levy" }; var paymentsForLearningSupport = new AppsMonthlyPaymentDASPaymentInfo() { UkPrn = ukPrn, LearnerReferenceNumber = "A12345", LearningAimReference = "50117889", LearnerUln = 12345, LearningStartDate = new DateTime(2017, 06, 28), LearningAimProgrammeType = 1, LearningAimStandardCode = 1, LearningAimFrameworkCode = 1, LearningAimPathwayCode = 1, FundingSource = 3, TransactionType = 8, AcademicYear = 1819, Amount = 18, ContractType = 2, CollectionPeriod = i, DeliveryPeriod = 1, LearningAimFundingLineType = "16-18 Apprenticeship Non-Levy" }; appsMonthlyPaymentDasInfo.Payments.Add(levyPayments); appsMonthlyPaymentDasInfo.Payments.Add(coInvestmentPayments); appsMonthlyPaymentDasInfo.Payments.Add(coInvestmentDueFromEmployerPayments); appsMonthlyPaymentDasInfo.Payments.Add(employerAdditionalPayments); appsMonthlyPaymentDasInfo.Payments.Add(providerAdditionalPayments); appsMonthlyPaymentDasInfo.Payments.Add(apprenticeAdditionalPayments); appsMonthlyPaymentDasInfo.Payments.Add(englishAndMathsPayments); appsMonthlyPaymentDasInfo.Payments.Add(paymentsForLearningSupport); } return(appsMonthlyPaymentDasInfo); }