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); }
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() }); }