/// <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); }
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(); } } }