public IDataEntity BuildLearnerDataEntity(FM36LearnerDto learner)
        {
            var dasPostDisadvantage = _postcodesReferenceDataService.DASDisadvantagesForPostcode(learner.PostcodePrior);
            var appsEarningsHistory = _appsEarningsHistoryReferenceDataService.AECEarningsHistory(learner.ULN);

            var learnerEmploymentStatusEntities = learner.LearnerEmploymentStatuses?.Select(BuildLearnerEmploymentStatus) ?? Enumerable.Empty <IDataEntity>();
            var learningDeliveryEntities        = learner.LearningDeliveries?.Where(ld => ld.FundModel == _fundModel).Select(BuildLearningDeliveryDataEntity) ?? Enumerable.Empty <IDataEntity>();
            var dasPostDisadvantageEntities     = dasPostDisadvantage?.Select(BuildDASPostcodeDisadvantage) ?? Enumerable.Empty <IDataEntity>();
            var appsEarningsHistoryEntities     = appsEarningsHistory?.Select(BuildApprenticeshipsEarningsHistory) ?? Enumerable.Empty <IDataEntity>();

            var entity = new DataEntity(Attributes.EntityLearner)
            {
                Attributes = new Dictionary <string, IAttributeData>()
                {
                    { Attributes.LearnRefNumber, new AttributeData(learner.LearnRefNumber) },
                    { Attributes.DateOfBirth, new AttributeData(learner.DateOfBirth) },
                    { Attributes.ULN, new AttributeData(learner.ULN) },
                    { Attributes.PrevUKPRN, new AttributeData(learner.PrevUKPRN) },
                    { Attributes.PMUKPRN, new AttributeData(learner.PMUKPRN) }
                }
            };

            entity.AddChildren(learningDeliveryEntities);
            entity.AddChildren(learnerEmploymentStatusEntities);
            entity.AddChildren(dasPostDisadvantageEntities);
            entity.AddChildren(appsEarningsHistoryEntities);

            return(entity);
        }
Пример #2
0
        public IDataEntity BuildLearnerDataEntity(ILearner learner)
        {
            var learnerEmploymentStatusDenormalized = BuildLearnerEmploymentStatusDenormalized(learner.LearnerEmploymentStatuses);
            var dasPostDisadvantage = _postcodesReferenceDataService.DASDisadvantagesForPostcode(learner.PostcodePrior);
            var appsEarningsHistory = _appsEarningsHistoryReferenceDataService.AECEarningsHistory(learner.ULN);

            return(new DataEntity(Attributes.EntityLearner)
            {
                Attributes = new Dictionary <string, IAttributeData>()
                {
                    { Attributes.LearnRefNumber, new AttributeData(learner.LearnRefNumber) },
                    { Attributes.DateOfBirth, new AttributeData(learner.DateOfBirthNullable) },
                    { Attributes.ULN, new AttributeData(learner.ULN) },
                    { Attributes.PrevUKPRN, new AttributeData(learner.PrevUKPRNNullable) },
                    { Attributes.PMUKPRN, new AttributeData(learner.PMUKPRNNullable) }
                },
                Children =
                    (learner
                     .LearningDeliveries?
                     .Where(ld => ld.FundModel == _fundModel)
                     .Select(BuildLearningDeliveryDataEntity) ?? new List <IDataEntity>())
                    .Union(
                        learnerEmploymentStatusDenormalized?
                        .Select(BuildLearnerEmploymentStatus) ?? new List <IDataEntity>())
                    .Union(
                        dasPostDisadvantage?
                        .Select(BuildDASPostcodeDisadvantage) ?? new List <IDataEntity>())
                    .Union(
                        appsEarningsHistory?
                        .Select(BuildApprenticeshipsEarningsHistory) ?? new List <IDataEntity>())
                    .ToList()
            });
        }