/// <summary>
        /// 解析上传的xml文件,返回解析日志
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        private StringBuilder ParseXmlFile(HttpPostedFile file)
        {
            StringBuilder logger = new StringBuilder();

            try
            {
                var xmlDoc      = XDocument.Load(file.InputStream);
                var wfProcesses = xmlDoc.Descendants("Root");
                XElementFormatter    formatter = new XElementFormatter();
                UploadProgressStatus status    = new UploadProgressStatus();

                status.CurrentStep = 1;
                status.MinStep     = 1;
                status.MaxStep     = wfProcesses.Count() + 1;
                logger.AppendFormat("开始导入,共发现{1}个流程模板...\n", file.FileName, status.MaxStep);

                foreach (var wfProcess in wfProcesses)
                {
                    IWfProcessDescriptor wfProcessDesc = (IWfProcessDescriptor)formatter.Deserialize(wfProcess);

                    using (TransactionScope tran = TransactionScopeFactory.Create())
                    {
                        WfProcessDescHelper.SaveWfProcess(wfProcessDesc);
                        tran.Complete();
                    }

                    logger.AppendFormat("	{0}保存成功...\n", wfProcessDesc.Key);

                    status.CurrentStep++;
                    status.Response();
                }
                logger.AppendFormat("导入完成!", file.FileName);
            }
            catch (Exception ex)
            {
                logger.AppendFormat("导入错误,{0},错误堆栈:{1}", ex.Message, ex.StackTrace);
            }

            return(logger);
        }
Ejemplo n.º 2
0
        private void Initialize()
        {
            WebUtility.RequiredScript(typeof(ControlBaseScript));
            this.JobID = WebUtility.GetRequestQueryValue("jobId", string.Empty);
            if (string.IsNullOrEmpty(this.JobID))
            {
                this.JobID = Guid.NewGuid().ToString();
                this.Mode  = PageMode.Create;
            }
            else
            {
                this.Mode = PageMode.Edit;
            }

            if (!IsPostBack)
            {
                var jobTypeDesc = EnumItemDescriptionAttribute.GetDescriptionList(typeof(JobType));

                this.ddlType.DataTextField  = "Description";
                this.ddlType.DataValueField = "EnumValue";
                this.ddlType.DataSource     = jobTypeDesc;
                this.ddlType.DataBind();

                this.ddlProcess.DataSource = WfProcessDescHelper.GetAllProcessDescKeys(true);
                this.ddlProcess.DataBind();

                if (this.Mode == PageMode.Create)
                {
                    detailGrid.InitialData = new List <SimpleSchedule>();
                }
                else
                {
                    InitControlState();
                }
            }
        }