public void BuildPaymentInfoDictionary_MixedCaseLearnRefNumber()
        {
            var paymentInfo = new AppsCoInvestmentPaymentsInfo()
            {
                Payments = new List <PaymentInfo>()
                {
                    new PaymentInfo()
                    {
                        LearnerReferenceNumber = "MiXeD",
                    },
                    new PaymentInfo()
                    {
                        LearnerReferenceNumber = "mixed",
                    },
                    new PaymentInfo()
                    {
                        LearnerReferenceNumber = "MIXED",
                    }
                }
            };

            var builder = new AppsCoInvestmentContributionsModelBuilder(new AppsCoInvestmentRecordKeyEqualityComparer(), null);

            var result = builder.BuildPaymentInfoDictionary(paymentInfo);

            var key = new AppsCoInvestmentRecordKey("MIXED", null, 0, 0, 0, 0);

            result.Should().HaveCount(1);

            result.TryGetValue(key, out var check);

            check.Should().NotBeNull();
            check.Count.Should().Be(3);
        }
예제 #2
0
        public void GetLearningDeliveryForRecordKey()
        {
            var matchingLearningDelivery = new LearningDeliveryBuilder()
                                           .With(ld => ld.LearnRefNumber, "LearningRefNumber")
                                           .Build();

            var nonMatchingLearningDelivery = new LearningDeliveryBuilder()
                                              .With(ld => ld.LearnRefNumber, "NotLearningRefNumber")
                                              .Build();

            var learningDeliveries = new List <LearningDelivery>()
            {
                matchingLearningDelivery,
                nonMatchingLearningDelivery,
            };

            var learner = new LearnerBuilder()
                          .With(l => l.LearningDeliveries, learningDeliveries)
                          .Build();

            var recordKey = new AppsCoInvestmentRecordKey(
                "LearnRefNumber",
                new DateTime(2020, 8, 1),
                20,
                40,
                10,
                30);

            NewBuilder().GetLearningDeliveryForRecord(learner, recordKey).Should().BeSameAs(matchingLearningDelivery);
        }
예제 #3
0
 // BR2
 public bool FilterReportRows(ICollection <Payment> payments, ICollection <AECApprenticeshipPriceEpisodePeriodisedValues> aecApprenticeshipPriceEpisodePeriodisedValues, ICollection <Learner> learners, AppsCoInvestmentRecordKey recordKey)
 {
     return
         (EmployerCoInvestmentPaymentFilter(payments, recordKey.LearnerReferenceNumber) ||
          CompletionPaymentFilter(payments, recordKey.LearnerReferenceNumber) ||
          PMRAppFinRecordFilter(learners, recordKey.LearnerReferenceNumber) ||
          NonZeroCompletionEarningsFilter(aecApprenticeshipPriceEpisodePeriodisedValues, recordKey.LearnerReferenceNumber));
 }
 public bool IlrLearningDeliveryRecordMatch(LearningDelivery learningDelivery, AppsCoInvestmentRecordKey record)
 {
     return(learningDelivery.ProgType == record.ProgrammeType &&
            learningDelivery.StdCode == record.StandardCode &&
            learningDelivery.FworkCode == record.FrameworkCode &&
            learningDelivery.PwayCode == record.PathwayCode &&
            learningDelivery.LearnStartDate == record.LearningStartDate &&
            learningDelivery.LearnAimRef.CaseInsensitiveEquals(record.LearningAimReference));
 }
 public LearningDelivery GetLearningDeliveryForRecord(Learner learner, AppsCoInvestmentRecordKey record)
 {
     return(learner?
            .LearningDeliveries
            .FirstOrDefault(ld => IlrLearningDeliveryRecordMatch(ld, record)));
 }
        public IEnumerable <Payment> GetPaymentsForRecord(IDictionary <AppsCoInvestmentRecordKey, List <Payment> > paymentsDictionary, AppsCoInvestmentRecordKey record)
        {
            if (paymentsDictionary.TryGetValue(record, out var result))
            {
                return(result);
            }

            return(Enumerable.Empty <Payment>());
        }
        public Learner GetLearnerForRecord(IDictionary <string, Learner> learnerDictionary, AppsCoInvestmentRecordKey record)
        {
            if (learnerDictionary.TryGetValue(record.LearnerReferenceNumber, out var result))
            {
                return(result);
            }

            return(null);
        }
예제 #8
0
 // BR2
 public bool FilterReportRows(AppsCoInvestmentPaymentsInfo paymentInfo, AppsCoInvestmentRulebaseInfo rulebaseInfo, AppsCoInvestmentILRInfo ilrInfo, AppsCoInvestmentRecordKey recordKey)
 {
     return
         (EmployerCoInvestmentPaymentFilter(paymentInfo, recordKey.LearnerReferenceNumber) ||
          CompletionPaymentFilter(paymentInfo, recordKey.LearnerReferenceNumber) ||
          PMRAppFinRecordFilter(ilrInfo, recordKey.LearnerReferenceNumber) ||
          NonZeroCompletionEarningsFilter(rulebaseInfo, recordKey.LearnerReferenceNumber));
 }