public Affiliation Draft(ESDATModel esdatModel) { var entity = new Affiliation(); entity.AffiliationStartDate = DateTime.Today; entity.PrimaryEmail = string.Empty; ODM2EntityLinker.Link(entity, Person); Validate(entity); return(entity); }
public Core.Action Map(ESDATModel esdatModel) { var entity = Draft(esdatModel); // Feature Actions var featureAction = _sampleCollectionFactory.FeatureActionMapper.Map(esdatModel); ODM2EntityLinker.Link(entity, featureAction); // Sampling Feature var samplingFeature = _sampleCollectionFactory.SamplingFeatureMapper.Map(esdatModel); ODM2EntityLinker.Link(featureAction, samplingFeature); // Dataset Guid // Generate and set guid for this import batch var guid = Guid.NewGuid(); _sampleCollectionFactory.DatasetMapper.Guid = guid; _chemistryFactory.DatasetMapper.Guid = guid; _chemistryFactory.DatasetMapper.BackingStore = _sampleCollectionFactory.DatasetMapper.BackingStore; // Results // Each Feature Action can contain many results (Samples) foreach (SampleFileData sample_ in esdatModel.SampleFileData) { _sampleCollectionFactory.ResultMapper.Sample = sample_; Result result = _sampleCollectionFactory.ResultMapper.Map(esdatModel); ODM2EntityLinker.Link(featureAction, result); // Unit var unit = _sampleCollectionFactory.UnitMapper.Map(esdatModel); ODM2EntityLinker.Link(result, unit); // Variable var variable = _sampleCollectionFactory.VariableMapper.Map(esdatModel); ODM2EntityLinker.Link(result, variable); // Datasets Result { var datasetsResult = _sampleCollectionFactory.DatasetsResultMapper.Map(esdatModel); ODM2EntityLinker.Link(result, datasetsResult); var dataset = _sampleCollectionFactory.DatasetMapper.Map(esdatModel); ODM2EntityLinker.Link(datasetsResult, dataset); } // Processing Level var processingLevel = _sampleCollectionFactory.ProcessingLevelMapper.Map(esdatModel); ODM2EntityLinker.Link(result, processingLevel); // Result Extension Property Values { var properties = new Dictionary <string, string>(); properties[ESDATSampleCollectionConstants.ResultExtensionPropertyValueKeySampleCode] = sample_.SampleCode; properties[ESDATSampleCollectionConstants.ResultExtensionPropertyValueKeyFieldID] = sample_.FieldID; properties[ESDATSampleCollectionConstants.ResultExtensionPropertyValueKeySampleDepth] = sample_.SampleDepth.ToString(); properties[ESDATSampleCollectionConstants.ResultExtensionPropertyValueKeyMatrixType] = sample_.MatrixType; properties[ESDATSampleCollectionConstants.ResultExtensionPropertyValueKeySampleType] = sample_.SampleType; properties[ESDATSampleCollectionConstants.ResultExtensionPropertyValueKeyParentSample] = sample_.ParentSample; properties[ESDATSampleCollectionConstants.ResultExtensionPropertyValueKeySDG] = sample_.SDG; properties[ESDATSampleCollectionConstants.ResultExtensionPropertyValueKeyLabSampleID] = sample_.LabSampleID; properties[ESDATSampleCollectionConstants.ResultExtensionPropertyValueKeyComments] = sample_.Comments; properties[ESDATSampleCollectionConstants.ResultExtensionPropertyValueKeyLabReportNumber] = sample_.LabReportNumber; foreach (var property in properties) { var extensionProperty = _sampleCollectionFactory.ExtensionPropertyMapper.Map(property.Key); var propertyID = extensionProperty.PropertyID; var propertyValue = property.Value; var resultExtensionPropertyValue = _sampleCollectionFactory.ResultExtensionPropertyValueMapper.Map(propertyID, propertyValue); ODM2EntityLinker.Link(resultExtensionPropertyValue, extensionProperty); ODM2EntityLinker.Link(result, resultExtensionPropertyValue); } } // Related Actions // Create a new related Action for each chemistry file // Assume that 1 unique sample maps to one or more chemistry files var chemistryData = esdatModel.ChemistryData.Where(x => x.SampleCode.Equals(sample_.SampleCode)); foreach (ChemistryFileData chemistry_ in chemistryData) { _chemistryFactory.ActionMapper.ParentAction = entity; _chemistryFactory.ActionMapper.SampleFileData = sample_; var chemistryAction = _chemistryFactory.ActionMapper.Map(esdatModel, chemistry_); _chemistryFactory.RelatedActionMapper.SetRelationship(entity, _WQDefaultValueProvider.ActionRelationshipTypeCVSampleCollection, chemistryAction); var relatedAction = _chemistryFactory.RelatedActionMapper.Map(esdatModel); ODM2EntityLinker.Link(entity, relatedAction); } } // Action Bies { ActionBy actionBy = _sampleCollectionFactory.ActionByMapper.Map(esdatModel); ODM2EntityLinker.Link(entity, actionBy); var person = _chemistryFactory.PersonMapper.Map(esdatModel); _chemistryFactory.AffiliationMapper.Person = person; var affiliation = _chemistryFactory.AffiliationMapper.Map(esdatModel); ODM2EntityLinker.Link(actionBy, affiliation); } // Method { var method = _sampleCollectionFactory.MethodMapper.Map(esdatModel); ODM2EntityLinker.Link(entity, method); var organization = _sampleCollectionFactory.OrganizationMapper.Map(esdatModel); ODM2EntityLinker.Link(method, organization); } return(entity); }
public Core.Action Map(ESDATModel esdatModel, ChemistryFileData chemistry) { var entity = Draft(esdatModel, chemistry); // Feature Actions var featureAction = _chemistryFactory.FeatureActionMapper.Map(esdatModel, chemistry); ODM2EntityLinker.Link(entity, featureAction); // Sampling Feature var samplingFeature = _chemistryFactory.SamplingFeatureMapper.Map(esdatModel, chemistry); ODM2EntityLinker.Link(featureAction, samplingFeature); // Result // Each Feature Action contains 1 Result (Chemistry) { var result = _chemistryFactory.ResultMapper.Map(esdatModel, chemistry); ODM2EntityLinker.Link(featureAction, result); // Unit var unit = _chemistryFactory.UnitMapper.Map(esdatModel, chemistry); ODM2EntityLinker.Link(result, unit); // Variable var variable = _chemistryFactory.VariableMapper.Map(esdatModel, chemistry); ODM2EntityLinker.Link(result, variable); // Datasets Result { var datasetsResult = _chemistryFactory.DatasetsResultMapper.Map(esdatModel); ODM2EntityLinker.Link(result, datasetsResult); var dataset = _chemistryFactory.DatasetMapper.Map(esdatModel); ODM2EntityLinker.Link(datasetsResult, dataset); } // Processing Level var processingLevel = _chemistryFactory.ProcessingLevelMapper.Map(esdatModel); ODM2EntityLinker.Link(result, processingLevel); // Measurement Result { var measurementResult = _chemistryFactory.MeasurementResultMapper.Map(esdatModel, chemistry); ODM2EntityLinker.Link(result, measurementResult); ODM2EntityLinker.Link(measurementResult, unit); var measurementResultValue = _chemistryFactory.MeasurementResultValueMapper.Map(esdatModel, chemistry); ODM2EntityLinker.Link(measurementResult, measurementResultValue); } // Result Extension Property Values { var properties = new Dictionary <string, string>(); properties[ESDATChemistryConstants.ResultExtensionPropertyValueKeySampleCode] = chemistry.SampleCode; properties[ESDATChemistryConstants.ResultExtensionPropertyValueKeyPrefix] = chemistry.Prefix; properties[ESDATChemistryConstants.ResultExtensionPropertyValueKeyTotalOrFiltered] = chemistry.TotalOrFiltered; properties[ESDATChemistryConstants.ResultExtensionPropertyValueKeyResultType] = chemistry.ResultType; properties[ESDATChemistryConstants.ResultExtensionPropertyValueKeyEQL] = chemistry.EQL.ToString(); properties[ESDATChemistryConstants.ResultExtensionPropertyValueKeyEQLUnits] = chemistry.EQLUnits; properties[ESDATChemistryConstants.ResultExtensionPropertyValueKeyComments] = chemistry.Comments; properties[ESDATChemistryConstants.ResultExtensionPropertyValueKeyUCL] = chemistry.UCL.ToString(); properties[ESDATChemistryConstants.ResultExtensionPropertyValueKeyLCL] = chemistry.LCL.ToString(); foreach (var property in properties) { var extensionProperty = _chemistryFactory.ExtensionPropertyMapper.Map(property.Key); var propertyID = extensionProperty.PropertyID; var propertyValue = property.Value; var resultExtensionPropertyValue = _chemistryFactory.ResultExtensionPropertyValueMapper.Map(propertyID, propertyValue); ODM2EntityLinker.Link(result, resultExtensionPropertyValue); } } } // Action Bies { ActionBy actionBy = _chemistryFactory.ActionByMapper.Map(esdatModel); ODM2EntityLinker.Link(entity, actionBy); var person = _chemistryFactory.PersonMapper.Map(esdatModel); _chemistryFactory.AffiliationMapper.Person = person; var affiliation = _chemistryFactory.AffiliationMapper.Map(esdatModel); ODM2EntityLinker.Link(actionBy, affiliation); } // Method { var method = _chemistryFactory.MethodMapper.Map(esdatModel, chemistry); ODM2EntityLinker.Link(entity, method); _chemistryFactory.OrganizationMapper.SampleFileData = SampleFileData; var organization = _chemistryFactory.OrganizationMapper.Map(esdatModel, chemistry); ODM2EntityLinker.Link(method, organization); } // Related Actions _chemistryFactory.RelatedActionMapper.SetRelationship(entity, _WQDefaultValueProvider.ActionRelationshipTypeCVChemistry, ParentAction); RelatedAction relatedAction = _chemistryFactory.RelatedActionMapper.Map(esdatModel); ODM2EntityLinker.Link(entity, relatedAction); return(entity); }