コード例 #1
0
 private void MutateCommon(MessageLearner learner, bool valid)
 {
     learner.ULN          = 9999999999;
     learner.ULNSpecified = true;
 }
コード例 #2
0
        public void DoB48RuleWhenLearnerChangesTurns16AndProgramStartsAfter1Aug()
        {
            //arrange
            var ldObj = new MessageLearner()
            {
                DateOfBirth      = new DateTime(2001, 12, 09),
                LearningDelivery = new MessageLearnerLearningDelivery[]
                {
                    new MessageLearnerLearningDelivery()
                    {
                        AimType        = 1,
                        AimSeqNumber   = 100,
                        FworkCode      = 549,
                        ProgType       = 2,
                        PwayCode       = 1,
                        LearnAimRef    = "ZPROG001",
                        LearnStartDate = new DateTime(2017, 09, 15)
                    },
                    new MessageLearnerLearningDelivery()
                    {
                        AimType        = 2,
                        AimSeqNumber   = 100,
                        FworkCode      = 549,
                        ProgType       = 2,
                        PwayCode       = 1,
                        LearnAimRef    = "60005623",
                        LearnStartDate = new DateTime(2017, 09, 15)
                    },
                    new MessageLearnerLearningDelivery()
                    {
                        AimType        = 1,
                        AimSeqNumber   = 100,
                        FworkCode      = 549,
                        ProgType       = 2,
                        PwayCode       = 3,
                        LearnAimRef    = "ZPROG001",
                        LearnStartDate = new DateTime(2017, 06, 15)
                    }, new MessageLearnerLearningDelivery()
                    {
                        AimType        = 5,
                        FworkCode      = 548,
                        ProgType       = 2,
                        PwayCode       = 3,
                        AimSeqNumber   = 100,
                        LearnAimRef    = "sdf asdf",
                        LearnStartDate = new DateTime(2017, 05, 15)
                    }, new MessageLearnerLearningDelivery()
                    {
                        AimType        = 1,
                        FworkCode      = 546,
                        ProgType       = 2,
                        PwayCode       = 1,
                        AimSeqNumber   = 100,
                        LearnAimRef    = "189213",
                        LearnStartDate = new DateTime(2005, 08, 21)
                    }
                }
            };

            //act
            var results = _dob48Validator.Validate(ldObj);

            //assert
            Assert.False(results);
        }
コード例 #3
0
 public void MutateHEFCEOLASS(MessageLearner learner, bool valid)
 {
     MutateHEFCE(learner, valid);
     Helpers.MutateLearningDeliveryMonitoringLDMToNewCode(learner, LearnDelFAMCode.LDM_OLASS);
 }
コード例 #4
0
        private void SetSOF(MessageLearner learner)
        {
            var fam = learner.LearningDelivery[0].LearningDeliveryFAM.Where(s => s.LearnDelFAMType == LearnDelFAMType.SOF.ToString()).First();

            fam.LearnDelFAMCode = ((int)LearnDelFAMCode.SOF_LA).ToString();
        }
 private void Mutate(MessageLearner learner, bool valid)
 {
     Helpers.MutateDOB(learner, valid, Helpers.AgeRequired.Exact15, Helpers.BasedOn.LearnDelStart, Helpers.MakeOlderOrYoungerWhenInvalid.Younger);
     Helpers.SetEndDates(learner.LearningDelivery[0], learner.LearningDelivery[0].LearnStartDate.AddDays(30), Helpers.SetAchDate.DoNotSetAchDate);
 }
コード例 #6
0
 private void Mutate16HigherLevelApprenticeship6Restart(MessageLearner learner, bool valid)
 {
     Mutate16HigherLevelApprenticeship6(learner, valid);
     Helpers.AddRestartFAMToLearningDelivery(learner);
 }
コード例 #7
0
 public void MutateShortPlannedHoursWithSOF(MessageLearner learner, bool valid)
 {
     MutateShortPlannedHours(learner, valid);
     SetSOF(learner);
 }
 public bool Evaluate(MessageLearner learner)
 {
     return(_dd29Rule.Evaluate(learner) == "Y");
 }
コード例 #9
0
        public static void MutateLearningDeliveryMonitoringLDMToNewCode(MessageLearner learner, LearnDelFAMCode code)
        {
            var fam = learner.LearningDelivery[0].LearningDeliveryFAM.Where(s => s.LearnDelFAMType == LearnDelFAMType.LDM.ToString()).First();

            fam.LearnDelFAMCode = ((int)code).ToString("D3");
        }
コード例 #10
0
 public IEnumerable <MessageLearnerLearningDeliveryLearningDeliveryFAM> Evaluate(MessageLearner learner)
 {
     return(learner?.LearningDelivery?
            .SelectMany(ld => ld.LearningDeliveryFAM)
            .Where(ldFAM => ldFAM.LearnDelFAMType == LearningDeliveryFAMTypeConstants.ACT.ToString()));
 }
コード例 #11
0
        public override LearningDeliveryStartDateRuleResult Evaluate(MessageLearner learner, MessageLearnerLearningDelivery learningDelivery)
        {
            var result = learner.DateOfBirth >= learningDelivery.LearnStartDate;

            return(CreateResult(result, "Error - ValidateLearnStartDate05"));
        }
コード例 #12
0
 private void Mutate115AndADay(MessageLearner learner, bool valid)
 {
     Helpers.MutateDOB(learner, valid, Helpers.AgeRequired.Less115, Helpers.BasedOn.AYStart, Helpers.MakeOlderOrYoungerWhenInvalid.OlderTwo);
 }
        public void R105RuleWithNoOverlappingDates()
        {
            //arrange
            var learner = new MessageLearner()
            {
                LearningDelivery = new MessageLearnerLearningDelivery[]
                {
                    new MessageLearnerLearningDelivery()
                    {
                        LearnAimRef         = "",
                        AimSeqNumber        = 1,
                        LearningDeliveryFAM = new MessageLearnerLearningDeliveryLearningDeliveryFAM[]
                        {
                            new MessageLearnerLearningDeliveryLearningDeliveryFAM()
                            {
                                LearnDelFAMCode     = "1",
                                LearnDelFAMType     = "ACT",
                                LearnDelFAMDateFrom = new DateTime(2017, 11, 01),
                                LearnDelFAMDateTo   = new DateTime(2017, 11, 09)
                            },
                            new MessageLearnerLearningDeliveryLearningDeliveryFAM()
                            {
                                LearnDelFAMCode     = "2",
                                LearnDelFAMType     = "ACT",
                                LearnDelFAMDateFrom = new DateTime(2017, 11, 10),
                                LearnDelFAMDateTo   = new DateTime(2017, 11, 21)
                            },

                            new MessageLearnerLearningDeliveryLearningDeliveryFAM()
                            {
                                LearnDelFAMCode = "1",
                                LearnDelFAMType = "ABC"
                            }
                        }
                    },
                    new MessageLearnerLearningDelivery()
                    {
                        LearnAimRef         = "",
                        AimSeqNumber        = 2,
                        LearningDeliveryFAM = new MessageLearnerLearningDeliveryLearningDeliveryFAM[]
                        {
                            new MessageLearnerLearningDeliveryLearningDeliveryFAM()
                            {
                                LearnDelFAMCode     = "1",
                                LearnDelFAMType     = "ACT",
                                LearnDelFAMDateFrom = new DateTime(2017, 11, 01),
                                LearnDelFAMDateTo   = new DateTime(2017, 11, 09)
                            },
                            new MessageLearnerLearningDeliveryLearningDeliveryFAM()
                            {
                                LearnDelFAMCode     = "3",
                                LearnDelFAMType     = "ACT",
                                LearnDelFAMDateFrom = new DateTime(2017, 12, 10),
                                LearnDelFAMDateTo   = new DateTime(2017, 12, 21)
                            },
                        }
                    }
                }
            };



            //act
            _r105RuleValidator.Validate(learner);

            //assert
        }
コード例 #14
0
 private void MutateCourseAndPlanEndDate(MessageLearner learner, bool valid)
 {
     learner.LearningDelivery[0].LearnAimRef = _dataCache.LearnAimFundingWithValidity(FundModel.NonFunded, LearnDelFAMCode.SOF_HEFCE, learner.LearningDelivery[0].LearnStartDate).LearnAimRef;
     learner.LearningDelivery[0].LearningDeliveryFAM[0].LearnDelFAMCode = ((int)LearnDelFAMCode.SOF_HEFCE).ToString();
     MutatePlanEndDate(learner, valid);
 }
コード例 #15
0
 private void Mutate24TradeUnionAim(MessageLearner learner, bool valid)
 {
     learner.LearningDelivery[0].LearnAimRef = _cache.LearnAimWithCategory(LearnDelCategory.TradeUnion).LearnAimRef;
     Mutate24(learner, valid);
 }
コード例 #16
0
 public static void MoveEmploymentBeforeLearnStart(MessageLearner learner)
 {
     learner.LearnerEmploymentStatus[0].DateEmpStatApp = learner.LearningDelivery[0].LearnStartDate;
     learner.LearnerEmploymentStatus[0].DateEmpStatApp = learner.LearnerEmploymentStatus[0].DateEmpStatApp.AddDays(-40);
 }
コード例 #17
0
 private void Mutate16(MessageLearner learner, bool valid)
 {
     learner.LearningDelivery[0].LearnStartDate = DateTime.Parse("2014-AUG-01");
     MutateCommon(learner, valid);
 }
コード例 #18
0
        public static void MutateDOB(MessageLearner learner, bool valid, AgeRequired ar, BasedOn whatTypeOfAge, MakeOlderOrYoungerWhenInvalid direction)
        {
            switch (whatTypeOfAge)
            {
            case BasedOn.SchoolAYStart:
                learner.DateOfBirth = DateTime.Parse(Helpers.ValueOrFunction("[AY|AUG|31]"));
                break;

            case BasedOn.AYStart:
                learner.DateOfBirth = DateTime.Parse(Helpers.ValueOrFunction("[AY|AUG|01]"));
                break;

            case BasedOn.EndAYYear:
                learner.DateOfBirth = DateTime.Parse(Helpers.ValueOrFunction("[AY|JUL|31]"));
                break;

            case BasedOn.LearnDelStart:
                learner.DateOfBirth = learner.LearningDelivery.Min(s => s.LearnStartDate);
                break;

            default:
                throw new NotImplementedException($"MutateDOB base date to compute age {whatTypeOfAge} has not been implementated");
            }

            switch (ar)
            {
            case AgeRequired.Exact1Day:
                learner.DateOfBirth = learner.DateOfBirth.AddDays(-1);
                break;

            case AgeRequired.Exact4:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-4);
                break;

            case AgeRequired.Exact13:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-13);
                break;

            case AgeRequired.Exact15:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-15);
                break;

            case AgeRequired.Exact16:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-16);
                break;

            case AgeRequired.Exact18:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-18);
                break;

            case AgeRequired.Exact19:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-19);
                break;

            case AgeRequired.Exact24:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-24);
                break;

            case AgeRequired.Exact25:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-25);
                break;

            case AgeRequired.Less16And30Days:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-16);
                learner.DateOfBirth = learner.DateOfBirth.AddDays(-30);
                break;

            case AgeRequired.Less19:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-19);
                learner.DateOfBirth = learner.DateOfBirth.AddDays(1);
                break;

            case AgeRequired.Less24:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-24);
                learner.DateOfBirth = learner.DateOfBirth.AddDays(1);
                break;

            case AgeRequired.Less25:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-25);
                learner.DateOfBirth = learner.DateOfBirth.AddDays(1);
                break;

            case AgeRequired.Less100:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-100);
                learner.DateOfBirth = learner.DateOfBirth.AddDays(1);
                break;

            case AgeRequired.Less115:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-115);
                learner.DateOfBirth = learner.DateOfBirth.AddDays(1);
                break;

            case AgeRequired.More24:
                learner.DateOfBirth = learner.DateOfBirth.AddYears(-24);
                learner.DateOfBirth = learner.DateOfBirth.AddDays(-1);
                break;

            default:
                throw new NotImplementedException($"MutateDOB exact type of age required {ar} has not been implementated");
            }

            if (!valid)
            {
                switch (direction)
                {
                case MakeOlderOrYoungerWhenInvalid.Older:
                    learner.DateOfBirth = learner.DateOfBirth.AddDays(-1);
                    break;

                case MakeOlderOrYoungerWhenInvalid.OlderTwo:
                    learner.DateOfBirth = learner.DateOfBirth.AddDays(-2);
                    break;

                case MakeOlderOrYoungerWhenInvalid.Younger:
                    learner.DateOfBirth = learner.DateOfBirth.AddDays(1);
                    break;

                case MakeOlderOrYoungerWhenInvalid.YoungerLots:
                    learner.DateOfBirth = learner.DateOfBirth.AddDays(63);
                    break;

                case MakeOlderOrYoungerWhenInvalid.NoChange:
                    break;
                }
            }
        }
コード例 #19
0
 private void MutateLearningAim(MessageLearner learner)
 {
     learner.LearningDelivery[0].LearnAimRef = _dataCache.LearnAimFundingWithValidity(FundModel.Adult, LearnDelFAMCode.SOF_ESFA_Adult, learner.LearningDelivery[0].LearnStartDate).LearnAimRef;
     Helpers.AddOrChangeSourceOfFunding(learner.LearningDelivery[0], LearnDelFAMCode.SOF_ESFA_1619);
 }
コード例 #20
0
        internal static void RemoveLearnerFAM(MessageLearner learner, LearnerFAMType type)
        {
            var ifam = learner.LearnerFAM.Where(s => s.LearnFAMType != type.ToString());

            learner.LearnerFAM = ifam.ToArray();
        }
コード例 #21
0
 public void MutateWithSOF(MessageLearner learner, bool valid)
 {
     Mutate(learner, valid);
     SetSOF(learner);
 }
コード例 #22
0
 private void MutateLess24NVQLevel3(MessageLearner learner, bool valid)
 {
     Helpers.MutateDOB(learner, valid, Helpers.AgeRequired.Less24, Helpers.BasedOn.LearnDelStart, Helpers.MakeOlderOrYoungerWhenInvalid.NoChange);
     MutateNVQLevel3(learner, valid);
 }
コード例 #23
0
 private void MutateShortPlannedHours(MessageLearner learner, bool valid)
 {
     Mutate(learner, valid);
     learner.PlanLearnHours = 10;
 }
コード例 #24
0
 private void MutateNVQLevel3(MessageLearner learner, bool valid)
 {
     learner.LearningDelivery[0].LearnAimRef = "50104767";
 }
コード例 #25
0
 private void MutateSOF108(MessageLearner learner, bool valid)
 {
     Helpers.AddOrChangeSourceOfFunding(learner.LearningDelivery[0], LearnDelFAMCode.SOF_LA);
     Mutate(learner, valid);
 }
コード例 #26
0
 private void Mutate24NVQLevel3(MessageLearner learner, bool valid)
 {
     MutateNVQLevel3(learner, valid);
     Mutate24(learner, valid);
 }
コード例 #27
0
        public void DoB48RuleForDoBIsNullSuccess()
        {
            //arrange
            var ldObj = new MessageLearner()
            {
                LearningDelivery = new MessageLearnerLearningDelivery[]
                {
                    new MessageLearnerLearningDelivery()
                    {
                        AimType        = 1,
                        AimSeqNumber   = 100,
                        FworkCode      = 549,
                        ProgType       = 2,
                        PwayCode       = 1,
                        LearnAimRef    = "ZPROG001",
                        LearnStartDate = new DateTime(2011, 05, 15)
                    },
                    new MessageLearnerLearningDelivery()
                    {
                        AimType        = 2,
                        AimSeqNumber   = 100,
                        FworkCode      = 549,
                        ProgType       = 2,
                        PwayCode       = 1,
                        LearnAimRef    = "60005623",
                        LearnStartDate = new DateTime(2011, 05, 15)
                    },
                    new MessageLearnerLearningDelivery()
                    {
                        AimType        = 1,
                        AimSeqNumber   = 100,
                        FworkCode      = 549,
                        ProgType       = 2,
                        PwayCode       = 3,
                        LearnAimRef    = "ZPROG001",
                        LearnStartDate = new DateTime(2011, 06, 15)
                    }, new MessageLearnerLearningDelivery()
                    {
                        AimType        = 5,
                        FworkCode      = 548,
                        ProgType       = 2,
                        PwayCode       = 3,
                        AimSeqNumber   = 100,
                        LearnAimRef    = "sdf asdf",
                        LearnStartDate = new DateTime(2011, 05, 15)
                    }, new MessageLearnerLearningDelivery()
                    {
                        AimType        = 1,
                        FworkCode      = 546,
                        ProgType       = 2,
                        PwayCode       = 1,
                        AimSeqNumber   = 100,
                        LearnAimRef    = "189213",
                        LearnStartDate = new DateTime(2012, 08, 21)
                    }
                }
            };

            //act
            var results = _dob48Validator.Validate(ldObj);

            //assert
            Assert.True(results);
        }
コード例 #28
0
 private void Mutate24(MessageLearner learner, bool valid)
 {
     Helpers.MutateDOB(learner, valid, Helpers.AgeRequired.Less24, Helpers.BasedOn.LearnDelStart, Helpers.MakeOlderOrYoungerWhenInvalid.Older);
 }
コード例 #29
0
 private void Mutate19(MessageLearner learner, bool valid)
 {
     Helpers.MutateDOB(learner, valid, Helpers.AgeRequired.Exact19, Helpers.BasedOn.SchoolAYStart, Helpers.MakeOlderOrYoungerWhenInvalid.Younger);
 }
        private MessageLearnerContactPreference GetMessageLearnerContactPreference(long contPrefCode, string contPrefType, MessageLearner parent = null)
        {
            MessageLearnerContactPreference messageLearnerContactPreference = new MessageLearnerContactPreference()
            {
                ContPrefCode = contPrefCode, ContPrefType = contPrefType, Parent = parent
            };

            return(messageLearnerContactPreference);
        }