public JsonResult Load(string WorkflowCode) { return(ExecuteFunctionRun(() => { WorkflowClauseViewModel model = new WorkflowClauseViewModel(); WorkflowTemplate.WorkflowClause SelectedClause = this.Engine.WorkflowManager.GetClause(WorkflowCode); var WorkflowVersions = LoadVersion(WorkflowCode); // 流水号的重置策略 var SeqnoResetTypes = LoadSeqNoResetTypes(); //工作日历 var WorkCalendar = LoadWorkCalendar(); int defaultVersion = this.Engine.WorkflowManager.GetWorkflowDefaultVersion(WorkflowCode); model.WorkflowCode = WorkflowCode; model.WorkflowVersion = defaultVersion.ToString(); model.IsControlUsable = BizWorkflowPackageLockByID(WorkflowCode); model.SeqNoResetType = Instance.SequenceNoResetType.None.ToString(); //默认值 var returnValue = new{ IsControlUsable = true, //是否可编辑 WorkflowVersions = WorkflowVersions, //流程版本 SeqNoResetTypes = SeqnoResetTypes, //流水号重置策略 CalendarList = WorkCalendar, //工作日历 WorkflowClause = model //运行参数 }; //还没保存过运行参数 if (SelectedClause == null) { return Json(returnValue, JsonRequestBehavior.AllowGet); } //code、名称、排序 都读取节点信息,同步保存到策略上 model.SequenceCode = SelectedClause.SequenceCode ?? ""; model.DisplayName = SelectedClause.WorkflowName; model.SortKey = SelectedClause.SortKey; // 工作日历 model.WorkCalendar = SelectedClause.CalendarId; // 异常管理员 model.ExceptionManager = SelectedClause.ExceptionManager; //流程号重置方式 Instance.SequenceNoResetType sequenceNoResetType = SelectedClause.SeqNoResetType; model.SeqNoResetType = sequenceNoResetType.ToString(); // 获得选中的工作流模板的状态 WorkflowTemplate.WorkflowState state = SelectedClause.State; model.IsActive = state == OThinker.H3.WorkflowTemplate.WorkflowState.Active; // 流程模板的移动办公设置 model.MobileStart = SelectedClause.MobileStart; // 加载图标 model.ImageUrl = string.IsNullOrEmpty(SelectedClause.IconFileName) ? this.DefautIconImagePath : (this.PortalRoot + "/" + this.WorkflowIconDirectory + "/" + SelectedClause.IconFileName); return Json(returnValue, JsonRequestBehavior.AllowGet); })); }
public JsonResult Save(WorkflowClauseViewModel model) { return(ExecuteFunctionRun(() => { ActionResult result = new ActionResult(false, ""); System.Web.HttpFileCollectionBase files = HttpContext.Request.Files; WorkflowTemplate.WorkflowClause SelectedClause = this.Engine.WorkflowManager.GetClause(model.WorkflowCode); // 检查输入 int sortKey = model.SortKey; // 更新模板 SelectedClause.WorkflowName = model.DisplayName; SelectedClause.SortKey = sortKey; // 移动办公设置 SelectedClause.MobileStart = model.MobileStart; // 流水号编码 SelectedClause.SequenceCode = model.SequenceCode ?? ""; // 流水号重置方式 SelectedClause.SeqNoResetType = (Instance.SequenceNoResetType)Enum.Parse(typeof(Instance.SequenceNoResetType), model.SeqNoResetType); SelectedClause.State = model.IsActive ? WorkflowTemplate.WorkflowState.Active : OThinker.H3.WorkflowTemplate.WorkflowState.Inactive; SelectedClause.CalendarId = model.WorkCalendar; //异常管理员 SelectedClause.ExceptionManager = model.ExceptionManager; //旧图标地址 string oldImagePath = SelectedClause.IconFileName; // 设置图标 if (files.Count > 0 && files[0].FileName.Length > 0) { var fileIcon = files[0]; if (!System.IO.Directory.Exists(WorkflowIconRootPath)) { System.IO.Directory.CreateDirectory(WorkflowIconRootPath); } string fileExt = System.IO.Path.GetExtension(fileIcon.FileName); if (!(fileExt == ".png" || fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".bmp")) { result.Message = "WorkflowSetting.WorkflowTemplateSetting_ImageFormat"; return Json(result, JsonRequestBehavior.AllowGet); } //记录旧图标 oldImagePath = SelectedClause.IconFileName; SelectedClause.IconFileName = Guid.NewGuid().ToString().ToLower() + fileExt; fileIcon.SaveAs(WorkflowIconRootPath + "/" + SelectedClause.IconFileName); } //设置默认版本号 int defaultVersion = SelectedClause.DefaultVersion; int.TryParse(model.WorkflowVersion, out defaultVersion); SelectedClause.DefaultVersion = defaultVersion; long result2 = this.Engine.WorkflowManager.UpdateClause(SelectedClause); if (result2 != ErrorCode.SUCCESS) { result.Message = "msgGlobalString.UpdateFailed"; return Json(result, "text/html", JsonRequestBehavior.AllowGet); } else { //删除旧图标 try { if (oldImagePath != SelectedClause.IconFileName) { System.IO.File.Delete(WorkflowIconRootPath + "/" + oldImagePath); } } catch { } // 通知结果 result.Message = "msgGlobalString.SaveSucced"; result.Success = true; return Json(result, "text/html", JsonRequestBehavior.AllowGet); } })); }