public ActionResult UploadXml(HttpPostedFileBase SourceFile)
        {
            XmlImportResults result = new XmlImportResults();

            try
            {
                if ( SourceFile == null || SourceFile.ContentLength < 1 || SourceFile.FileName.IsEmpty())
                    throw new ArgumentNullException("SourceFile","No source file selected!");

                result = XmlService.UploadXml(SourceFile.FileName, SourceFile.InputStream);
            }
            catch (Exception e)
            {
                if ( result == null)
                    result = new XmlImportResults();
                result.ErrorMessage = e.Message;
                result.Success = false;
            }

            return View("Index", result);
        }
Пример #2
0
        public static XmlImportResults UploadXml(string filename, Stream xmlStream)
        {
            var result = new XmlImportResults();
            result.Success = false;
            DeletePreviousImports();

            var xmlDocument = new XmlDocument();

            xmlDocument.Load(xmlStream);
            var import = new XmlImport
                        {
                            ImportDate = DateTime.Now,
                            XmlFileName = filename,
                            XmlData = XmlUtility.ToString(xmlDocument)
                        };
            var importid =import.Insert();

            var menuitems = ParseXml(xmlDocument);

            foreach (var xmlMenuItem in menuitems)
            {
                xmlMenuItem.XmlImportId = Convert.ToInt32(importid);
                var menuid = xmlMenuItem.Insert();
                XmlMenuItemXrefRespositorycs.Save(xmlMenuItem);
                result.MenuItemsUploaded++;
                foreach (var ingredient in xmlMenuItem.Ingredients)
                {
                    ingredient.XmlImportMenuItemId = Convert.ToInt32(menuid);
                    ingredient.Save();
                    XmlIngredientsXrefRepository.Save(ingredient, xmlMenuItem.ItemGuid,xmlMenuItem.ItemName);
                    result.IngredientsUploaded++;
                }
            }

            result.Success = true;
            return result;
        }