Beispiel #1
0
        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);
        }