public bool DeleteFlowTemplate(FlowTemplate element) { string sql = "delete from FlowTemplate where ID=" + element.ID; int r = sqlHelper.ExecuteSql(sql); return(r > 0); }
public int AddTaskInfo(TaskInfo element) { string sql = "insert into TaskInfo (EntityId, FlowID, Sponsor, Remark) values (" + element.EntityId + ", " + element.Flow.ID + ", '" + element.Sponsor + "', '" + element.Remark + "'); select SCOPE_IDENTITY()"; object obj = sqlHelper.ExecuteSqlReturn(sql); int R; if (obj != null && obj != DBNull.Value && int.TryParse(obj.ToString(), out R)) { Flow flow = FlowLogic.GetInstance().GetFlow(element.Flow.ID); if (flow != null) { FlowTemplate temp = FlowTemplateLogic.GetInstance().GetFlowTemplate(flow.Template.ID); if (temp != null) { Alert alert = new Alert(); alert.提醒对象 = string.Join(",", temp.Stages[flow.CurrentIndex].Executors.ToArray()); alert.提醒方式 = 提醒方式.执行流程; alert.提醒时间 = DateTime.Now; alert.提醒项目 = flow.Name; alert.备注 = flow.ID.ToString(); AlertLogic.GetInstance().AddAlert(alert); Alert alert2 = new Alert(); alert2.提醒对象 = string.Join(",", temp.Stages[flow.CurrentIndex].Approvers.ToArray()); alert2.提醒方式 = 提醒方式.审批流程; alert2.提醒时间 = DateTime.Now; alert2.提醒项目 = flow.Name; alert.备注 = flow.ID.ToString(); AlertLogic.GetInstance().AddAlert(alert2); return(R); } } } return(0); }
public Flow GetFlow(int id) { string sql = "select * from Flow where ID=" + id; DataTable dt = sqlHelper.Query(sql); if (dt != null && dt.Rows.Count > 0) { int templateId = Convert.ToInt32(dt.Rows[0]["TemplateID"]); FlowTemplate template = FlowTemplateLogic.GetInstance().GetFlowTemplate(templateId); List <TaskStage> stages = new List <TaskStage>(); string stagesIds = dt.Rows[0]["Stages"].ToString(); string[] stageIdList = stagesIds.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (string stageId in stageIdList) { TaskStage stage = TaskStageLogic.GetInstance().GetTaskStage(Convert.ToInt32(stageId)); if (stage != null) { stages.Add(stage); } } Flow element = new Flow(Convert.ToInt32(dt.Rows[0]["ID"]), dt.Rows[0]["Name"].ToString(), template, Convert.ToInt32(dt.Rows[0]["CurrentIndex"]), dt.Rows[0]["Remark"].ToString(), stages); return(element); } return(null); }
public bool UpdateFlowTemplate(FlowTemplate element) { string sql = "update FlowTemplate set Name='" + element.Name + "', Stages='" + element.StageIds + "' where ID=" + element.ID; int r = sqlHelper.ExecuteSql(sql); return(r > 0); }
private void button2_Click(object sender, EventArgs e) { if (listBox1.SelectedIndex > -1) { if (MessageBox.Show("确定要删除该流程模板么?", "删除提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK) { FlowTemplate temp = (FlowTemplate)listBox1.SelectedItem; if (temp != null) { if (FlowTemplateLogic.GetInstance().DeleteFlowTemplate(temp)) { LoadAllTemps(); MessageBox.Show("删除成功!"); } else { MessageBox.Show("删除失败!"); } } } } else { MessageBox.Show("请先选定要删除的流程模板!"); } }
public List <Flow> GetAllFlows() { List <Flow> elements = new List <Flow>(); string sql = "select * from Flow order by ID desc"; DataTable dt = sqlHelper.Query(sql); if (dt != null && dt.Rows.Count > 0) { TaskStageLogic tsl = TaskStageLogic.GetInstance(); for (int i = 0; i < dt.Rows.Count; i++) { FlowTemplate template = FlowTemplateLogic.GetInstance().GetFlowTemplate(Convert.ToInt32(dt.Rows[i]["TemplateID"])); List <TaskStage> stages = new List <TaskStage>(); string stagesIds = dt.Rows[i]["Stages"].ToString(); string[] stageIdList = stagesIds.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (string stageId in stageIdList) { TaskStage stage = TaskStageLogic.GetInstance().GetTaskStage(Convert.ToInt32(stageId)); if (stage != null) { stages.Add(stage); } } Flow element = new Flow(Convert.ToInt32(dt.Rows[i]["ID"]), dt.Rows[i]["Name"].ToString(), template, Convert.ToInt32(dt.Rows[i]["CurrentIndex"]), dt.Rows[i]["Remark"].ToString(), stages); elements.Add(element); } } return(elements); }
public void Should_return_first_step_if_no_steps_are_completed() { // arrange var steps = new List <IStep> { new StartStep { Id = 1 }, new CollectDataStep { Id = 2 }, new StopStep { Id = 3 } }; var template = new FlowTemplate { Steps = steps }; var sut = new FlowInstance { Template = template }; // act var result = sut.NextStep(); // assert Assert.NotNull(result); Assert.IsType <StartStep>(result); }
public List <FlowTemplate> GetAllFlowTemplates() { List <FlowTemplate> elements = new List <FlowTemplate>(); string sql = "select * from FlowTemplate"; DataTable dt = sqlHelper.Query(sql); if (dt != null && dt.Rows.Count > 0) { TaskStageTemplateLogic tsl = TaskStageTemplateLogic.GetInstance(); for (int i = 0; i < dt.Rows.Count; i++) { List <TaskStageTemplate> stages = new List <TaskStageTemplate>(); string stageIds = dt.Rows[i]["Stages"].ToString(); List <string> idList = Flow.GetSatges(stageIds); foreach (string id in idList) { TaskStageTemplate stage = tsl.GetTaskStageTemplate(Convert.ToInt32(id)); if (stage != null) { stages.Add(stage); } } FlowTemplate element = new FlowTemplate(Convert.ToInt32(dt.Rows[i]["ID"]), dt.Rows[i]["Name"].ToString(), stages); elements.Add(element); } } return(elements); }
public ActionResult EditKendo([DataSourceRequest] DataSourceRequest request, FlowTemplate item) { if (ModelState.IsValid) { _FlowTemplateService.Update(item); return(Json(ModelState.ToDataSourceResult())); } return(Json(ModelState.ToDataSourceResult())); }
public ActionResult Edit(FlowTemplate item) { if (ModelState.IsValid) { _FlowTemplateService.Update(item); return(RedirectToAction("Index")); } return(View(item)); }
public bool Delete(FlowTemplate item) { if (item == null) { return(false); } _unitOfWork.FlowTemplateRepository.Delete(item); _unitOfWork.Save(); return(true); }
public ActionResult Delete(int id = 0) { FlowTemplate item = _FlowTemplateService.FindById(id); if (item == null) { return(HttpNotFound()); } return(View(item)); }
public ActionResult EditFlowJSON(FlowTemplate item) { if (item != null) { _FlowTemplateService.Update(item); // FlowTemplateID return(Json(toFlowTemplatePOCO(item), JsonRequestBehavior.AllowGet)); } return(Json("{}")); }
private FlowTemplatePOCO toFlowTemplatePOCO(FlowTemplate item) { return(new FlowTemplatePOCO() { FinalStateID = item.FinalStateID, FlowTemplateID = item.FlowTemplateID, InitialStateID = item.InitialStateID, ParentProcessTemplateID = item.ParentProcessTemplateID, Name = item.Name }); }
private void button1_Click(object sender, EventArgs e) { FlowTemplate template = new FlowTemplate(0, textBox1.Text.Trim(), flowTemplateControl1.Nodes); int i = FlowTemplateLogic.GetInstance().AddFlowTemplate(template); if (i > 0) { MessageBox.Show("添加流程模板成功!"); this.DialogResult = System.Windows.Forms.DialogResult.OK; } }
/// <summary> /// 获取指定的流程 /// </summary> /// <param name="name"></param> /// <param name="status">1为未完成,2为已完成,其他为所有</param> /// <returns></returns> public List <Flow> GetFlows(string name, int status) { List <Flow> elements = new List <Flow>(); string where = "where (1=1)"; if (!string.IsNullOrEmpty(name)) { where += " and Name like '%" + name + "%'"; } string sql = "select * from Flow " + where + " order by ID desc"; DataTable dt = sqlHelper.Query(sql); if (dt != null && dt.Rows.Count > 0) { TaskStageLogic tsl = TaskStageLogic.GetInstance(); for (int i = 0; i < dt.Rows.Count; i++) { FlowTemplate template = FlowTemplateLogic.GetInstance().GetFlowTemplate(Convert.ToInt32(dt.Rows[i]["TemplateID"])); List <TaskStage> stages = new List <TaskStage>(); string stagesIds = dt.Rows[i]["Stages"].ToString(); string[] stageIdList = stagesIds.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (string stageId in stageIdList) { TaskStage stage = TaskStageLogic.GetInstance().GetTaskStage(Convert.ToInt32(stageId)); if (stage != null) { stages.Add(stage); } } int currentIndex = Convert.ToInt32(dt.Rows[i]["CurrentIndex"]); Flow element = new Flow(Convert.ToInt32(dt.Rows[i]["ID"]), dt.Rows[i]["Name"].ToString(), template, currentIndex, dt.Rows[i]["Remark"].ToString(), stages); if (status == 1) { if ((currentIndex < stages.Count - 1) || (currentIndex == stages.Count - 1 && stages[stages.Count - 1].Status != TaskStatus.Finished)) { elements.Add(element); } } else if (status == 2) { if (currentIndex == stages.Count - 1 && stages[stages.Count - 1].Status == TaskStatus.Finished) { elements.Add(element); } } else { elements.Add(element); } } } return(elements); }
public IFlowTemplate AddFlowTemplate([Required] string name, string description, IDataFlow source = null) { var result = new FlowTemplate(this, name) { Description = description, FlowType = source?.FlowType ?? FlowType.ReadWriteCommand }; source.CloneProperties(result); Add(result); return(result); }
public int AddFlowTemplate(FlowTemplate element) { string sql = "insert into FlowTemplate (Name, Stages) values ('" + element.Name + "', '" + element.StageIds + "'); select SCOPE_IDENTITY()"; object obj = sqlHelper.ExecuteSqlReturn(sql); int R; if (obj != null && obj != DBNull.Value && int.TryParse(obj.ToString(), out R)) { return(R); } else { return(0); } }
public void Add(Core.FlowTemplate item) { var itemToInsert = new FlowTemplate { Name = item.Name }; _context.FlowTemplates.InsertOnSubmit(itemToInsert); itemToInsert.PropertyChanged += (sender, args) => { if (args.PropertyName == "Id") { item.Id = ((FlowTemplate)sender).Id; } }; }
public void Should_not_run_completed_step_based_on_completed_steps() { var fakeStep = A.Fake <IRunnableStep>(); var template = new FlowTemplate { Steps = new List <IStep> { fakeStep }.ToList() }; var sut = new FlowInstance { Template = template }; sut.CompletedSteps.Add(new CompletedStep(1, 0)); A.CallTo(() => fakeStep.Process(A <FlowInstance> ._, A <IRunFlows> ._)).MustNotHaveHappened(); }
private void button2_Click(object sender, EventArgs e) { if (templateId > 0) { FlowTemplate template = new FlowTemplate(templateId, textBox1.Text.Trim(), flowTemplateControl1.Nodes); if (FlowTemplateLogic.GetInstance().UpdateFlowTemplate(template)) { MessageBox.Show("修改流程模板成功!"); this.DialogResult = System.Windows.Forms.DialogResult.OK; } } else { MessageBox.Show("请先指定一个要修改的流程模板!或者当前是添加新的流程模板,请点击【添加】按钮。"); } }
private void EditTemplate() { if (listBox1.SelectedIndex > -1) { FlowTemplate temp = listBox1.SelectedItem as FlowTemplate; if (temp != null) { FlowTemplateForm ftf = new FlowTemplateForm(this.owner); ftf.Template = temp; if (ftf.ShowDialog() == System.Windows.Forms.DialogResult.OK) { LoadAllTemps(); } } } }
private static FlowInstance GetMock() { var steps = new List <IStep> { new StartStep { Id = 1 }, new CollectDataStep { Id = 2 }, new StopStep { Id = 3 } }; var template = new FlowTemplate { Steps = steps }; var sut = new FlowInstance { Template = template }; sut.CompletedSteps.Add(new CompletedStep(1, 0)); return(sut); }
public List <FlowTemplate> GetFlowTemplates(string name, int stageCount) { List <FlowTemplate> elements = new List <FlowTemplate>(); string where = "where (1=1)"; if (!string.IsNullOrEmpty(name)) { where += " and Name like '%" + name + "%'"; } string sql = "select * from FlowTemplate " + where + " order by ID desc"; DataTable dt = sqlHelper.Query(sql); if (dt != null && dt.Rows.Count > 0) { TaskStageTemplateLogic tsl = TaskStageTemplateLogic.GetInstance(); for (int i = 0; i < dt.Rows.Count; i++) { List <TaskStageTemplate> stages = new List <TaskStageTemplate>(); string stageIds = dt.Rows[i]["Stages"].ToString(); List <string> idList = Flow.GetSatges(stageIds); if (idList.Count == stageCount) { foreach (string id in idList) { TaskStageTemplate stage = tsl.GetTaskStageTemplate(Convert.ToInt32(id)); if (stage != null) { stages.Add(stage); } } FlowTemplate element = new FlowTemplate(Convert.ToInt32(dt.Rows[i]["ID"]), dt.Rows[i]["Name"].ToString(), stages); elements.Add(element); } } } return(elements); }
public IHttpActionResult Put(string guid, [FromBody] FlowTemplate value) { //这里不做ModelState校验,在创建时由创建函数检查 if (value == null || guid != value.guid) { return(BadRequest("错误: 不能传空对象或guid不匹配")); } Tuple <bool, FlowTemplate, List <string> > result = FlowTemplateDBHelper.updateFlowTemplate( value.guid, value.name, value.displayName, value.version, value.code, value.flowTemplateJson); if (result.Item1) // 成功修改 { return(Ok(result.Item2)); } else { var errorInfo = result.Item3.Aggregate( (total, next) => { return(total + "\n" + next); }); return(BadRequest("错误:" + errorInfo)); } }
public IHttpActionResult Post(FlowTemplate value) { if (value == null) //这里不做ModelState校验,在创建时由创建函数检查 { return(BadRequest("不能传空对象")); } Tuple <bool, FlowTemplate, List <string> > result = FlowTemplateDBHelper.createFlowTemplate( value.guid, value.name, value.displayName, value.version, value.code, value.flowTemplateJson); if (result.Item1) // 成功创建 { return(CreatedAtRoute("DefaultApi", new { id = result.Item2.flowTemplateId }, result.Item2)); } else { var errorInfo = result.Item3.Aggregate( (total, next) => { return(total + "\n" + next); }); return(BadRequest(errorInfo)); } }
public FlowTemplate GetFlowTemplate(int id) { string sql = "select * from FlowTemplate where ID=" + id; DataTable dt = sqlHelper.Query(sql); if (dt != null && dt.Rows.Count > 0) { TaskStageTemplateLogic tsl = TaskStageTemplateLogic.GetInstance(); List <TaskStageTemplate> stages = new List <TaskStageTemplate>(); string stageIds = dt.Rows[0]["Stages"].ToString(); List <string> idList = Flow.GetSatges(stageIds); foreach (string idStr in idList) { TaskStageTemplate stage = tsl.GetTaskStageTemplate(Convert.ToInt32(idStr)); if (stage != null) { stages.Add(stage); } } FlowTemplate element = new FlowTemplate(Convert.ToInt32(dt.Rows[0]["ID"]), dt.Rows[0]["Name"].ToString(), stages); return(element); } return(null); }
public List <FlowTemplate> GetFlowTemplates(string where) { List <FlowTemplate> elements = new List <FlowTemplate>(); if (!string.IsNullOrEmpty(where)) { string w = where.Trim().ToLower(); if (!w.StartsWith("where ")) { w = "where " + w; } string sql = "select * from FlowTemplate " + w + " order by ID desc"; DataTable dt = sqlHelper.Query(sql); if (dt != null && dt.Rows.Count > 0) { TaskStageTemplateLogic tsl = TaskStageTemplateLogic.GetInstance(); for (int i = 0; i < dt.Rows.Count; i++) { List <TaskStageTemplate> stages = new List <TaskStageTemplate>(); string stageIds = dt.Rows[i]["Stages"].ToString(); List <string> idList = Flow.GetSatges(stageIds); foreach (string id in idList) { TaskStageTemplate stage = tsl.GetTaskStageTemplate(Convert.ToInt32(id)); if (stage != null) { stages.Add(stage); } } FlowTemplate element = new FlowTemplate(Convert.ToInt32(dt.Rows[i]["ID"]), dt.Rows[i]["Name"].ToString(), stages); elements.Add(element); } } } return(elements); }
public bool Add(FlowTemplate item) { _unitOfWork.FlowTemplateRepository.Add(item); _unitOfWork.Save(); return(true); }
private void Next() { if (listBox1.SelectedIndex > -1) { FlowTemplate temp = listBox1.SelectedItem as FlowTemplate; if (temp != null) { List <TaskStage> stages = new List <TaskStage>(); foreach (TaskStageTemplate stage in temp.Stages) { TaskStage s = new TaskStage(0, stage.Name, stage, TaskStatus.Initiative, "", "", DateTime.MinValue, DateTime.MinValue, ""); int i = TaskStageLogic.GetInstance().AddTaskStage(s); if (i > 0) { s.ID = i; stages.Add(s); } } string docName = doc.Name; Flow flow = new Flow(0, docName + "(" + temp.Name + ")", temp, -1, "", stages); int r = FlowLogic.GetInstance().AddFlow(flow); if (r > 0) { flow.ID = r; if (FlowLogic.GetInstance().StartFlow(r)) { flow.StartFlow(); TaskInfo task = new TaskInfo(0, doc.ID, flow, this.User.Username, "创建时间:" + DateTime.Now.ToString()); if (TaskInfoLogic.GetInstance().AddTaskInfo(task) > 0) { MessageBox.Show("建立流程任务成功!"); this.DialogResult = System.Windows.Forms.DialogResult.OK; } else { MessageBox.Show("建立流程任务失败!"); this.DialogResult = System.Windows.Forms.DialogResult.Ignore; } } else { MessageBox.Show("启动流程失败!"); this.DialogResult = System.Windows.Forms.DialogResult.Ignore; } } else { MessageBox.Show("建立流程到数据库失败!"); this.DialogResult = System.Windows.Forms.DialogResult.Ignore; } //this.Close(); } else { MessageBox.Show("您选择的流程模板为空!"); } } else { MessageBox.Show("请先选择一个流程模板!"); } }