Updated CD-Importer.

Changes required due to model change.
pull/1/head
Basimodo 2021-06-27 12:48:44 +07:00
parent 4126bf6708
commit 27771b2925
2 changed files with 14 additions and 13 deletions

@ -1060,7 +1060,7 @@ namespace Gremlin.GremlinData.DBClasses
CoverletterText = fields[5], CoverletterText = fields[5],
Notes = fields[6], Notes = fields[6],
}; };
ImportedCD.Product = new(); ImportedCD.Products = new();
ImportedCD.Supplier = new(); ImportedCD.Supplier = new();
ImportedCD.Supplier.AccountName = fields[2] is "" or "RB" ? "Agilent Technologies" : fields[2]; ImportedCD.Supplier.AccountName = fields[2] is "" or "RB" ? "Agilent Technologies" : fields[2];
MetaDataSetter.ForImport(ImportedCD, "Importer", "Initial Importer by CD-ImporterFomCsv"); MetaDataSetter.ForImport(ImportedCD, "Importer", "Initial Importer by CD-ImporterFomCsv");
@ -1117,12 +1117,12 @@ namespace Gremlin.GremlinData.DBClasses
foreach (CustomDescription CD in CDsReadFromFile) foreach (CustomDescription CD in CDsReadFromFile)
{ {
//Skip Desciptions, if it has been already imported above (as part from 3PP) //Skip Desciptions, if it has been already imported above (as part from 3PP)
if (thirdPartyProductsFromImportedCDs.Contains(CD.Product)) continue; if (thirdPartyProductsFromImportedCDs.Intersect(CD.Products).Any()) continue;
//Establish EF Reference. If no PN/Opt found, then skip this custom description. //Establish EF Reference. If no PN/Opt found, then skip this custom description.
//CD.Product = GetProduct(db, CD.ProductNumber, CD.OptionNumber); //ResolveXY-functions return null, if no match is found in db. //CD.Product = GetProduct(db, CD.ProductNumber, CD.OptionNumber); //ResolveXY-functions return null, if no match is found in db.
CD.Product = productsInDb.Find(p => p.ProductNumber == CD.ProductNumber && p.OptionNumber == CD.OptionNumber); CD.Products = productsInDb.Where(product => product.ProductNumber == CD.ProductNumber && product.OptionNumber == CD.OptionNumber).ToList();
if (CD.Product == null) if (CD.Products == null)
{ {
CDsWithoutEFReferences.Add(CD); CDsWithoutEFReferences.Add(CD);
continue; continue;
@ -1206,7 +1206,7 @@ namespace Gremlin.GremlinData.DBClasses
importedCD.CoverletterText = stringsRead.ElementAt(5); importedCD.CoverletterText = stringsRead.ElementAt(5);
importedCDs.Add(importedCD); importedCDs.Add(importedCD);
if (importedCDs.Count >= 1200 && importedCDs.Count % 100 == 0) MessageBox.Show(importedCDs.Count.ToString()); //DEBUGGING //if (importedCDs.Count >= 1200 && importedCDs.Count % 100 == 0) MessageBox.Show(importedCDs.Count.ToString()); //DEBUGGING
} }
} }
@ -1260,11 +1260,12 @@ namespace Gremlin.GremlinData.DBClasses
foreach (CustomDescription CD in importedCDs) foreach (CustomDescription CD in importedCDs)
{ {
//Skip Desciptions, if it has been already imported above (as part from 3PP) //Skip Desciptions, if it has been already imported above (as part from 3PP)
if (thirdPartyProductsFromImportedCDs.Contains(CD.Product)) continue; if (thirdPartyProductsFromImportedCDs.Intersect(CD.Products).Any()) continue;
//Establish EF Reference. If no PN/Opt found, then skip this custom description. //Establish EF Reference. If no PN/Opt found, then skip this custom description.
CD.Product = ResolveProduct(db, CD.ProductNumber, CD.OptionNumber); //ResolveXY-functions return null, if no match is found in db. CD.Products.Add(ResolveProduct(db, CD.ProductNumber, CD.OptionNumber)); //ResolveXY-functions return null, if no match is found in db.
if (CD.Product == null)
if (CD.Products == null)
{ {
CDsWithoutEFReferences.Add(CD); CDsWithoutEFReferences.Add(CD);
continue; continue;

@ -321,7 +321,7 @@ namespace Gremlin.GremlinData.DBClasses
DataValidUntil = FarInTheFuture, DataValidUntil = FarInTheFuture,
DataVersionComment = "Initial Importer by CD-ImporterFomCsv", DataVersionComment = "Initial Importer by CD-ImporterFomCsv",
}; };
ImportedCD.Product = new(); ImportedCD.Products = new();
ImportedCD.Supplier = new(); ImportedCD.Supplier = new();
ImportedCD.Supplier.AccountName = fields[2] is "" or "RB" ? "Agilent Technologies" : fields[2]; ImportedCD.Supplier.AccountName = fields[2] is "" or "RB" ? "Agilent Technologies" : fields[2];
ImportedCD.DataCreationDate = ImportedCD.DataValidFrom = ImportedCD.DataModificationDate = DateTime.Now; ImportedCD.DataCreationDate = ImportedCD.DataValidFrom = ImportedCD.DataModificationDate = DateTime.Now;
@ -378,12 +378,12 @@ namespace Gremlin.GremlinData.DBClasses
foreach (CustomDescription CD in CDsReadFromFile) foreach (CustomDescription CD in CDsReadFromFile)
{ {
//Skip Desciptions, if it has been already imported above (as part from 3PP) //Skip Desciptions, if it has been already imported above (as part from 3PP)
if (thirdPartyProductsFromImportedCDs.Contains(CD.Product)) continue; if (thirdPartyProductsFromImportedCDs.Intersect(CD.Products).Any()) continue;
//Establish EF Reference. If no PN/Opt found, then skip this custom description. //Establish EF Reference. If no PN/Opt found, then skip this custom description.
//CD.Product = GetProduct(db, CD.ProductNumber, CD.OptionNumber); //ResolveXY-functions return null, if no match is found in db. //CD.Product = GetProduct(db, CD.ProductNumber, CD.OptionNumber); //ResolveXY-functions return null, if no match is found in db.
CD.Product = productsInDb.Find(p => p.ProductNumber == CD.ProductNumber && p.OptionNumber == CD.OptionNumber); CD.Products = productsInDb.Where(product => product.ProductNumber == CD.ProductNumber && product.OptionNumber == CD.OptionNumber).ToList();
if (CD.Product == null) if (CD.Products == null)
{ {
CDsWithoutEFReferences.Add(CD); CDsWithoutEFReferences.Add(CD);
continue; continue;