public LearnerAmalgamator( IAmalgamator <MessageLearnerProviderSpecLearnerMonitoring> providerSpecLearnerMonitoringAmalgamator, IAmalgamator <MessageLearnerLearnerEmploymentStatus> learnerEmploymentStatusAmalgamator, IAmalgamator <MessageLearnerLearnerHE> learnerHEAmalgamator, IRuleProvider ruleProvider, IAmalgamationErrorHandler amalgamationErrorHandler) : base(Entity.Learner, (x) => x.LearnRefNumber, amalgamationErrorHandler) { _providerSpecLearnerMonitoringAmalgamator = providerSpecLearnerMonitoringAmalgamator; _learnerEmploymentStatusAmalgamator = learnerEmploymentStatusAmalgamator; _learnerHEAmalgamator = learnerHEAmalgamator; _standardRuleString = ruleProvider.BuildStandardRule <string>(); _standardRuleStringFirstItem = ruleProvider.BuildStandardRuleFirstItem <string>(); _standardRuleLong = ruleProvider.BuildStandardRule <long?>(); _standardRuleDateTime = ruleProvider.BuildStandardRule <DateTime?>(); _addressRule = ruleProvider.BuildAddressRule(); _ulnRule = ruleProvider.BuildUlnRule(); _alsCostrule = ruleProvider.BuildAlsCostRule(); _postCodeRule = ruleProvider.BuildPostCodeRule(); _learnerContactPreferenceCollectionRule = ruleProvider.BuildLearnerContactPreferenceCollectionRule(); _lLDDandHealthProblemCollectionRule = ruleProvider.BuildLLDDandHealthProblemCollectionRule(); _learnerFAMAmalgamationRule = ruleProvider.BuildLearnerFAMAmalgamationRule(); _learningDeliveryRule = ruleProvider.BuildLearningDeliveryRule(); }
public MessageLearnerDestinationandProgression Amalgamate(IEnumerable <MessageLearnerDestinationandProgression> models) { var messageLearnerDestinationandProgression = new MessageLearnerDestinationandProgression(); ApplyRule(s => s.LearnRefNumber, _ruleProvider.BuildStandardRule <string>().Definition, models, messageLearnerDestinationandProgression); ApplyRule(s => s.ULN, _ruleProvider.BuildUlnRule().Definition, models, messageLearnerDestinationandProgression); ApplyGroupedCollectionRule(s => s.DPOutcome, _ruleProvider.BuildDPOutcomeRule().Definition, models, messageLearnerDestinationandProgression); return(messageLearnerDestinationandProgression); }