public IEnumerable <ISOCropVariety> ExportCropVarieties(IEnumerable <CropVarietyProduct> adaptCropVarieties) { List <ISOCropVariety> varieties = new List <ISOCropVariety>(); foreach (CropVarietyProduct adaptVariety in adaptCropVarieties) { ISOCropVariety variety = ExportCropVariety(adaptVariety); varieties.Add(variety); } return(varieties); }
public CropVarietyProduct ImportCropVariety(Crop adaptCrop, ISOCropVariety isoCropVariety) { CropVarietyProduct variety = new CropVarietyProduct(); //ID ImportIDs(variety.Id, isoCropVariety.CropVarietyId); //Description variety.Description = isoCropVariety.CropVarietyDesignator; variety.CropId = adaptCrop.Id.ReferenceId; variety.ProductType = ProductTypeEnum.Variety; return(variety); }
public ISOCropVariety ExportCropVariety(CropVarietyProduct adaptCropVariety) { ISOCropVariety isoVariety = new ISOCropVariety(); //ID string id = adaptCropVariety.Id.FindIsoId() ?? GenerateId(); isoVariety.CropVarietyId = id; ExportIDs(adaptCropVariety.Id, id); //Designator isoVariety.CropVarietyDesignator = adaptCropVariety.Description; //isoVariety.ProductIdRef = ; return(isoVariety); }
public ISOProduct ExportProduct(Product adaptProduct) { ISOProduct isoProduct = new ISOProduct(); //ID string productID = adaptProduct.Id.FindIsoId(XmlPrefix) ?? GenerateId(); isoProduct.ProductId = productID; if (!ExportIDs(adaptProduct.Id, productID)) { string preExistingID = TaskDataMapper.InstanceIDMap.GetISOID(adaptProduct.Id.ReferenceId); if (preExistingID.StartsWith("CVT")) { ISOCropVariety cvt = ISOTaskData.ChildElements.OfType <ISOCropType>().SelectMany(c => c.CropVarieties).FirstOrDefault(v => v.CropVarietyId == preExistingID); if (cvt != null) { //Fill the product ID on the variety now that we have one cvt.ProductIdRef = productID; } } //CVT becomes PDT in the mapping TaskDataMapper.InstanceIDMap.ReplaceISOID(adaptProduct.Id.ReferenceId, productID); } //Designator isoProduct.ProductDesignator = adaptProduct.Description; //Product Group string groupName = Enum.GetName(typeof(ProductTypeEnum), adaptProduct.ProductType); ISOProductGroup group = _productGroupMapper.ExportProductGroup(groupName, false); isoProduct.ProductGroupRef = group.ProductGroupId; //Type switch (adaptProduct.ProductType) { case ProductTypeEnum.Mix: isoProduct.ProductType = ISOProductType.Mixture; break; default: isoProduct.ProductType = ISOProductType.Single; break; } //Density if (adaptProduct.Density != null) { UnitOfMeasure uom = adaptProduct.Density.Value.UnitOfMeasure; int value = (int)adaptProduct.Density.Value.Value; //Assumes values are in appropriate units already if (uom.Code == "mg1l-1") { isoProduct.DensityMassPerVolume = value; } else if (uom.Code == "g1count-1") { isoProduct.DensityMassPerCount = value; } else if (uom.Code == "ml1count-1") { isoProduct.DensityVolumePerCount = value; } } return(isoProduct); }
public ISOProduct ExportProduct(Product adaptProduct) { ISOProduct isoProduct = new ISOProduct(); //ID string productID = adaptProduct.Id.FindIsoId(XmlPrefix) ?? GenerateId(); isoProduct.ProductId = productID; if (!ExportIDs(adaptProduct.Id, productID)) { string preExistingID = TaskDataMapper.InstanceIDMap.GetISOID(adaptProduct.Id.ReferenceId); if (preExistingID.StartsWith("CVT")) { ISOCropVariety cvt = ISOTaskData.ChildElements.OfType <ISOCropType>().SelectMany(c => c.CropVarieties).FirstOrDefault(v => v.CropVarietyId == preExistingID); if (cvt != null) { //Fill the product ID on the variety now that we have one cvt.ProductIdRef = productID; } } //CVT becomes PDT in the mapping TaskDataMapper.InstanceIDMap.ReplaceISOID(adaptProduct.Id.ReferenceId, productID); } //Context Items //The 1.1, etc. convention below for PackagedProduct and PackagedProductInstance is internal to this plugin. //As LinkList.xml items classified in ManufacturerGLN LGP's, the data carries a proprietary definition that, //in this case, is internal to the Import/Export methods in this class and serves //no purpose other than ensuring exported data is reimported in its same form. If in future there is a need to expose //other product data in this way, we need simply alter these to methods to allow for the same. ExportContextItems(adaptProduct.ContextItems, productID, "ADAPT_Context_Items:Product"); int packagedProductIndex = 0; foreach (var packagedProduct in DataModel.Catalog.PackagedProducts.Where(pp => pp.ProductId == adaptProduct.Id.ReferenceId)) { ExportContextItems(packagedProduct.ContextItems, productID, "ADAPT_Context_Items:PackagedProduct", $"{(++packagedProductIndex).ToString()}."); int packagedProductInstanceIndex = 0; foreach (var packagedProductInstance in DataModel.Catalog.PackagedProductInstances.Where(ppi => ppi.PackagedProductId == packagedProduct.Id.ReferenceId)) { ExportContextItems(packagedProductInstance.ContextItems, productID, "ADAPT_Context_Items:PackagedProductInstance", $"{packagedProductIndex.ToString()}.{(++packagedProductInstanceIndex).ToString()}."); } } //Designator isoProduct.ProductDesignator = adaptProduct.Description; //Product Group string groupName = Enum.GetName(typeof(ProductTypeEnum), adaptProduct.ProductType); ISOProductGroup group = _productGroupMapper.ExportProductGroup(groupName, false); isoProduct.ProductGroupRef = group.ProductGroupId; //Type switch (adaptProduct.ProductType) { case ProductTypeEnum.Mix: isoProduct.ProductType = ISOProductType.Mixture; break; default: isoProduct.ProductType = ISOProductType.Single; break; } //Density if (adaptProduct.Density != null) { UnitOfMeasure uom = adaptProduct.Density.Value.UnitOfMeasure; int value = (int)adaptProduct.Density.Value.Value; //Assumes values are in appropriate units already if (uom.Code == "mg1l-1") { isoProduct.DensityMassPerVolume = value; } else if (uom.Code == "g1count-1") { isoProduct.DensityMassPerCount = value; } else if (uom.Code == "ml1count-1") { isoProduct.DensityVolumePerCount = value; } } return(isoProduct); }