public DataSheetFeedImport Validate(DataSheetFeedImport dsImport) { //TODO: duplicated functionality? XmlReaderSettings schemaSettings = new XmlReaderSettings(); string[] files = Directory.GetFiles("schemas"); string msg = string.Empty; foreach (string file in files) { schemaSettings.Schemas.Add("", file); } schemaSettings.ValidationType = ValidationType.Schema; schemaSettings.ValidationEventHandler += new ValidationEventHandler(ValidationEventHandler); XmlReader reader = XmlReader.Create(dsImport.FileName, schemaSettings); XmlDocument document = new XmlDocument(); document.Load(reader); ValidationEventHandler eventHandler = new ValidationEventHandler(ValidationEventHandler); document.Validate(eventHandler); dsImport.IsValid = (validationMessage.Length == 0); if (!dsImport.IsValid) { dsImport.ValidationMessage = validationMessage; } return(dsImport); }
public bool Import(string importPath, int userId) { bool ok = false; DataSheetFeedImport imp = new DataSheetFeedImport() { DateStamp = DateTime.Now, UserId = userId, FileName = importPath, FileContent = ReadFile(importPath) }; try { imp = sSvc.Validate(imp); if (imp.IsValid) { XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml(imp.FileContent); XmlNode docRoot = xdoc.DocumentElement; XmlNodeList datasheetDocs = docRoot.SelectNodes("Datasheet"); foreach (XmlNode datasheetDoc in datasheetDocs) { XmlDocument dsDoc = new XmlDocument(); Entity entity = new Entity() { Active = true, DateStamp = DateTime.Now, EntityType = (int)EntityTypeEnum.Product, UserId = userId }; dsDoc.LoadXml(datasheetDoc.OuterXml); entity.OtherId = GetEntityID(dsDoc); entity.EntityName = GetEntityName(dsDoc); db.Entities.Add(entity); db.SaveChanges(); // SaveChapter(entity, dsDoc, "InformationFromExportingSystem", userId); } db.Imports.Add(imp); db.SaveChanges(); } } catch (Exception ex) { Log.Error(ex, "Import File Name:" + importPath); } return(ok); }