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