예제 #1
0
        internal List <MessageLearner> Generate(string ruleName, LearnerTypeRequired requiresLearner, int currentLearnerIndex, ref long ULNIndex)
        {
            ULNIndex = currentLearnerIndex;
            long uln = 0;
            bool ok  = false;

            while (!ok)
            {
                try
                {
                    uln = NextULN(ULNIndex);
                    ok  = true;
                }
                catch (ArgumentOutOfRangeException)
                {
                    ++ULNIndex;
                }
            }

            List <MessageLearner> result  = new List <MessageLearner>();
            MessageLearner        learner = new MessageLearner()
            {
                LearnRefNumber = $"{currentLearnerIndex:X}{ruleName.Replace("_", string.Empty)}",
                ULN            = uln,
                ULNSpecified   = true
            };

            if (learner.LearnRefNumber.Length > _cache.MaximumLearnRefLength())
            {
                throw new ArgumentOutOfRangeException($"{learner.LearnRefNumber} is too long ({learner.LearnRefNumber.Length}) (max is {_cache.MaximumLearnRefLength()})");
            }

            PopulateLearnerForRules(learner);

            result.Add(learner);
            return(result);
        }
예제 #2
0
        public GenerationOptions CreateGenerationOptions(LearnerTypeRequired requiresLearner)
        {
            switch (requiresLearner)
            {
            case LearnerTypeRequired.CommunityLearning:
                this.Options = new GenerationOptions()
                {
                    DOBRequired        = true,
                    NIRequired         = false,
                    AimDefaultType     = GenerationOptions.AimTypes.CommunityLearningFM10ValidAims,
                    Age19              = true,
                    EmploymentRequired = true
                };
                break;

            case LearnerTypeRequired.Apprenticeships:
                this.Options = new GenerationOptions()
                {
                    DOBRequired        = true,
                    NIRequired         = true,
                    Age19              = false,
                    EmploymentRequired = true,
                    LD = new LearningDeliveryOptions()
                    {
                        IncludeSOF = true
                    }
                };
                break;

            case LearnerTypeRequired.NonFunded:
                this.Options = new GenerationOptions()
                {
                    DOBRequired    = true,
                    NIRequired     = false,
                    AimDefaultType = GenerationOptions.AimTypes.NonfundedValidAims,
                    Age19          = true
                };
                break;

            case LearnerTypeRequired.YP1619:
                this.Options = new GenerationOptions()
                {
                    DOBRequired           = true,
                    NIRequired            = true,
                    AimDefaultType        = GenerationOptions.AimTypes.YP1619Aims,
                    EngMathsGardeRequired = true,
                    EmploymentRequired    = true,
                    LD = new LearningDeliveryOptions()
                    {
                        IncludeSOF = true
                    }
                };
                break;

            case LearnerTypeRequired.OtherYP1619:
                this.Options = new GenerationOptions()
                {
                    DOBRequired           = true,
                    NIRequired            = true,
                    AimDefaultType        = GenerationOptions.AimTypes.OtherYP1619Aims,
                    EngMathsGardeRequired = true,
                    EmploymentRequired    = true,
                    LD = new LearningDeliveryOptions()
                    {
                        IncludeSOF = true,
                        IncludeLDM = true
                    }
                };
                break;

            case LearnerTypeRequired.Adult:
                this.Options = new GenerationOptions()
                {
                    DOBRequired        = true,
                    Age19              = true,
                    NIRequired         = true,
                    AimDefaultType     = GenerationOptions.AimTypes.AdultFM35ValidAims,
                    EmploymentRequired = true,
                    LD = new LearningDeliveryOptions()
                    {
                        IncludeSOF = true,
                        IncludeFFI = true,
                        IncludeHHS = true
                    }
                };
                break;

            case LearnerTypeRequired.OtherAdult:
                this.Options = new GenerationOptions()
                {
                    DOBRequired        = true,
                    Age19              = true,
                    NIRequired         = true,
                    AimDefaultType     = GenerationOptions.AimTypes.OtherAdultFM81ValidAims,
                    EmploymentRequired = true,
                    LD = new LearningDeliveryOptions()
                    {
                        IncludeSOF = true,
                        IncludeFFI = true,
                        IncludeHHS = true,
                        IncludeLDM = true
                    }
                };
                break;

            case LearnerTypeRequired.ESF:
                this.Options = new GenerationOptions()
                {
                    DOBRequired        = true,
                    Age19              = true,
                    NIRequired         = true,
                    AimDefaultType     = GenerationOptions.AimTypes.ESFValidAims,
                    EmploymentRequired = true,
                    LD = new LearningDeliveryOptions()
                    {
                        IncludeSOF      = true,
                        IncludeFFI      = false,
                        IncludeHHS      = true,
                        IncludeContract = true
                    }
                };
                break;

            default:
                throw new NotImplementedException($"CreateGenerationOptions for {requiresLearner} has not been implemented");
            }

            return(this.Options);
        }