コード例 #1
0
        public JsonResult Upload()
        {
            return(ExecuteFunctionRun(() =>
            {
                System.Web.HttpFileCollectionBase files = HttpContext.Request.Files;//传输的文件
                ActionResult result = new ActionResult();
                BizRuleHanderViewModel model = new BizRuleHanderViewModel();

                if (files == null || files.Count == 0 || string.IsNullOrEmpty(files[0].FileName))
                {
                    result.Success = false;
                    result.Message = "msgGlobalString.SelectFile";
                    return Json(result, "text/html", JsonRequestBehavior.AllowGet);
                }
                string fileType = Path.GetExtension(TrimHtml(Path.GetFileName(files[0].FileName))).ToLowerInvariant();
                if (!fileType.Replace(".", "").Equals("xml"))
                {
                    result.Success = false;
                    result.Message = "msgGlobalString.FileMustIsXML";
                    return Json(result, "text/html", JsonRequestBehavior.AllowGet);
                }

                //将文件内容存放在缓存中
                string xmlStr = string.Empty;
                using (StreamReader sr = new StreamReader(files[0].InputStream))
                {
                    xmlStr = sr.ReadToEnd();
                }
                string newName = Guid.NewGuid().ToString() + fileType;

                model.FileName = newName;
                model.XMLString = xmlStr;

                //验证是否为伪造的xml文件
                try
                {
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(model.XMLString);
                }
                catch (Exception ex)
                {
                    result.Success = false;
                    result.Message = "msgGlobalString.InvilidateFile";
                    return Json(result, "text/html", JsonRequestBehavior.AllowGet);
                }

                BizRuleTable BizRuleTable = ReadXmlFile(model); //从XML中读取服务名称和编码

                model.Code = BizRuleTable.Code;
                model.DisplayName = BizRuleTable.DisplayName;

                //界面控制,前台控制
                result.Success = true;
                result.Message = "";
                result.Extend = model;//返回上传的BizRule
                return Json(result, "text/html", JsonRequestBehavior.AllowGet);
            }));
        }
コード例 #2
0
        private BizRuleTable ReadXmlFile(BizRuleHanderViewModel model)
        {
            XmlDocument xmlDoc = new XmlDocument();

            var xmlString = Server.UrlDecode(model.XMLString).Replace(" ", " ");

            xmlDoc.LoadXml(xmlString);//根节点

            //数据模型
            XmlNode Node = xmlDoc.DocumentElement.GetElementsByTagName(FunctionNodeType.BizRule.ToString())[0];

            return(new BizRuleTable(xmlDoc.DocumentElement));
        }
コード例 #3
0
        public JsonResult Import(BizRuleHanderViewModel model)
        {
            return(ExecuteFunctionRun(() =>
            {
                ActionResult result = new ActionResult();
                //业务规则必须以字母开始,不让创建到数据库表字段时报错
                System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("^[a-zA-Z\\u4e00-\\u9fa5][0-9a-zA-Z\\u4e00-\\u9fa5_]*$");
                if (!regex.Match(model.Code).Success)
                {
                    result.Success = false;
                    result.Message = "EditBizObjectSchemaProperty.Msg4";
                    return Json(result);
                }
                BizRuleTable BizRuleTable = ReadXmlFile(model);

                if (BizRuleTable == null)
                {
                    result.Success = false;
                    result.Message = "BizRule.CreateFailed";
                    return Json(result);
                }

                if (string.IsNullOrEmpty(model.Code))
                {
                    result.Success = false;
                    result.Message = "BizRule.EmptyCode";
                    return Json(result);
                }

                bool isSuccess = true;
                string errorMsg = "msgGlobalString.ImportFail";

                BizRuleTable record = this.Engine.BizBus.GetBizRule(model.Code);

                if (record != null)
                {
                    if (model.IsCover)
                    {
                        isSuccess = this.Engine.BizBus.RemoveBizRule(model.Code);
                    }
                    else
                    {
                        result.Success = false;
                        result.Message = "msgGlobalString.CodeDuplicate";
                        return Json(result);
                    }
                }
                if (isSuccess)
                {
                    BizRuleTable.Code = model.Code;
                    BizRuleTable.DisplayName = model.DisplayName;
                    isSuccess = this.Engine.BizBus.AddBizRule(BizRuleTable, model.ParentCode);
                }
                if (isSuccess)
                {
                    result.Success = true;
                    result.Message = "msgGlobalString.ImportSucceed";
                }
                else
                {
                    result.Success = false;
                    result.Message = errorMsg;
                }

                return Json(result);
            }));
        }