public IDataEntity BuildGlobalDataEntity(FM35LearnerDto learner, Global global) { var orgFunding = _organisationReferenceDataService.OrganisationFundingForUKPRN(global.UKPRN) .Where(f => f.OrgFundFactType.CaseInsensitiveEquals(Attributes.OrgFundFactorTypeAdultSkills)); var postcodeSpecialistResources = _organisationReferenceDataService.PostcodeSpecialistResourcesForUkprn(global.UKPRN).ToList(); var orgDataEntities = orgFunding.Any() ? orgFunding?.Select(BuildOrgFundingDataEntity).ToList() : new List <IDataEntity> { new DataEntity(Attributes.EntityOrgFunding) }; var specialistResourceEntities = postcodeSpecialistResources?.Select(BuildPostcodeSpecialistResource) ?? Enumerable.Empty <IDataEntity>(); var entity = new DataEntity(Attributes.EntityGlobal) { Attributes = BuildGlobalAttributes(global) }; if (learner != null) { entity.AddChild(BuildLearnerDataEntity(learner)); entity.AddChildren(orgDataEntities); entity.AddChildren(specialistResourceEntities); } return(entity); }
public IDataEntity BuildGlobalDataEntity(ILearner learner, Global global) { var orgFunding = _organisationReferenceDataService.OrganisationFundingForUKPRN(global.UKPRN).Where(f => f.OrgFundFactType == Attributes.OrgFundFactorTypeAdultSkills).ToList(); var globalEntity = new DataEntity(Attributes.EntityGlobal) { Attributes = new Dictionary <string, IAttributeData>() { { Attributes.LARSVersion, new AttributeData(global.LARSVersion) }, { Attributes.OrgVersion, new AttributeData(global.OrgVersion) }, { Attributes.PostcodeDisadvantageVersion, new AttributeData(global.PostcodeDisadvantageVersion) }, { Attributes.UKPRN, new AttributeData(global.UKPRN) } }, Children = learner != null ? new List <IDataEntity> { BuildLearnerDataEntity(learner) } .Union( orgFunding? .Select(BuildOrgFundingDataEntity) ?? new List <IDataEntity>()) .ToList() : new List <IDataEntity>() }; return(globalEntity); }
public Global BuildGlobal() { var ukprn = _fileDataService.UKPRN(); var orgFundings = _organisationReferenceDataService.OrganisationFundingForUKPRN(ukprn).Where(f => f.OrgFundFactType == Attributes.OrgFundFactorTypeEFA1619).ToList(); return(new Global() { AreaCostFactor1618 = orgFundings.FirstOrDefault(f => f.OrgFundEffectiveFrom == _orgFundingAppliesFrom && f.OrgFundFactor == Attributes.OrgFundFactorHistoricAreaCost)?.OrgFundFactValue, DisadvantageProportion = orgFundings.FirstOrDefault(f => f.OrgFundEffectiveFrom == _orgFundingAppliesFrom && f.OrgFundFactor == Attributes.OrgFundFactorHistoricDisadvantageFundingProportion)?.OrgFundFactValue, HistoricLargeProgrammeProportion = orgFundings.FirstOrDefault(f => f.OrgFundEffectiveFrom == _orgFundingAppliesFrom && f.OrgFundFactor == Attributes.OrgFundFactorHistoricLargeProgProportion)?.OrgFundFactValue, LARSVersion = _larsReferenceDataService.LARSCurrentVersion(), OrgVersion = _organisationReferenceDataService.OrganisationVersion(), PostcodesVersion = _postcodesReferenceDataService.PostcodesCurrentVersion(), ProgrammeWeighting = orgFundings.FirstOrDefault(f => f.OrgFundEffectiveFrom == _orgFundingAppliesFrom && f.OrgFundFactor == Attributes.OrgFundFactorHistoriProgCostWeigting)?.OrgFundFactValue, RetentionFactor = orgFundings.FirstOrDefault(f => f.OrgFundEffectiveFrom == _orgFundingAppliesFrom && f.OrgFundFactor == Attributes.OrgFundFactorHistoricRetention)?.OrgFundFactValue, SpecialistResources = orgFundings.FirstOrDefault(f => f.OrgFundFactor == Attributes.OrgFundFactorSpecialistResources)?.OrgFundFactValue == "1" ? true : false, UKPRN = ukprn }); }