Example #1
0
        private void ReadXmlFile(ref BizServiceHandlerViewModel model, out BizService bizService)
        {
            //从服务器加载
            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.LoadXml(Session[model.XMLString].ToString());
            //根节点
            XmlElement root = xmlDoc.DocumentElement;

            //数据模型
            XmlNode Node = root.GetElementsByTagName("BizService")[0];

            bizService = (BizService)Convertor.XmlToObject(typeof(BizService), Node.OuterXml);

            //业务服务编码、名称
            model.ServiceCode = bizService.Code;
            model.ServiceName = bizService.DisplayName;
        }
Example #2
0
        /// <summary>
        ///  // 根据Code判断服务是否存在
        /// 如果不存在,则调用 AddBizService 方法
        /// 如果存在
        ///    判断非覆盖模式,则提示已经存在,不可导入
        ///    如果覆盖模式
        ///          并且ObjectID不同,把当前导入对象的ObjectID改为服务器的ObjectID,执行更新;
        ///          如果ObjectID相同,那么直接执行更新
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public JsonResult ImportService(BizServiceHandlerViewModel model)
        {
            return(ExecuteFunctionRun(() => {
                ActionResult result = new ActionResult();
                BizService bizService = null;
                var newCode = model.ServiceCode;
                try
                {
                    ReadXmlFile(ref model, out bizService);
                    //
                    model.ServiceCode = newCode;
                }
                catch
                {
                    result.Success = false;
                    result.Message = "BizServiceHandler.ServiceImport_Mssg2";
                    return Json(result);
                }

                if (string.IsNullOrEmpty(model.ServiceCode))
                {
                    result.Success = false;
                    result.Message = "BizServiceHandler.ServiceImport_Mssg3";
                    return Json(result);
                }

                bool isSuccess = false;
                string errorMsg = "msgGlobalString.ImportFail";
                BizService record = this.Engine.BizBus.GetBizService(model.ServiceCode);
                bizService.FolderCode = model.ParentCode;
                if (record == null)
                {
                    bizService.ObjectID = Guid.NewGuid().ToString();
                    bizService.Serialized = false;
                    bizService.Code = model.ServiceCode;
                    bizService.Serialized = false;
                    bizService.UsedCount = 0; // 将被引用次数重置为0

                    if (bizService.Settings != null)
                    {
                        foreach (BizServiceSetting setting in bizService.Settings)
                        {
                            setting.ObjectID = Guid.NewGuid().ToString();
                            setting.Serialized = false;
                        }
                    }

                    if (bizService.Methods != null)
                    {
                        foreach (BizServiceMethod method in bizService.Methods)
                        {
                            method.ObjectID = Guid.NewGuid().ToString();
                            method.Serialized = false;
                        }
                    }
                    isSuccess = this.Engine.BizBus.AddBizService(bizService, true).Valid;
                }
                else
                {
                    bool isCover = false;
                    bool.TryParse(model.Cover, out isCover);
                    if (isCover)
                    {
                        bizService.ObjectID = record.ObjectID;
                        isSuccess = this.Engine.BizBus.UpdateBizService(bizService, true).Valid;
                    }
                    else
                    {
                        errorMsg = "BizServiceHandler.ServiceImport_Mssg4";
                    }
                }

                if (isSuccess)
                {
                    result.Success = true;
                    result.Message = "msgGlobalString.ImportSucceed";

                    Session[model.XMLString] = null;//清空Session
                }
                else
                {
                    result.Success = false;
                    result.Message = errorMsg;
                }
                return Json(result);
            }));
        }
Example #3
0
        /// <summary>
        /// 上传业务服务文件
        /// </summary>
        /// <returns></returns>
        public JsonResult Upload()
        {
            return(ExecuteFunctionRun(() =>
            {
                System.Web.HttpFileCollectionBase files = HttpContext.Request.Files;//传输的文件

                ActionResult result = new ActionResult();
                BizServiceHandlerViewModel model = new BizServiceHandlerViewModel();

                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 = Guid.NewGuid().ToString(); //SessionName
                Session[model.XMLString] = xmlStr;           //存储XML字符串


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

                BizService bizService = null;
                try
                {
                    ReadXmlFile(ref model, out bizService); //从XML中读取服务名称和编码
                }
                catch {
                    result.Success = false;
                    result.Message = "msgGlobalString.InvilidateFile";
                    return Json(result, "text/html", JsonRequestBehavior.AllowGet);
                }


                //界面控制,前台控制
                result.Success = true;
                result.Message = "";
                result.Extend = model;
                return Json(result, "text/html", JsonRequestBehavior.AllowGet);
            }));
        }