internal ParallelInfo Parse() { var rslt = new ParallelInfo(); rslt.Name = this.Name; if (this.Variable != null) { rslt.Variable = this.Variable.Parse(); } if (this.Init != null) { rslt.Init = this.Init.Parse(); } if (this.Action != null) { rslt.Actions = this.Action.Parse(); } if (this.Translation != null) { rslt.Translation = this.Translation.Parse(); } foreach (var line in this.Execute_Lines) { rslt.ExecuteLines.Add(line.Parse()); } return(rslt); }
private void InsertDB_Transitions(WorkflowContext ctx, ParallelInfo parallelInfo, Dictionary <string, Guid> nodes) { InsertDB_Transitions(ctx, parallelInfo as NodeInfo, nodes); //平行节点默认跳转到每个执行线上的第一个节点 foreach (var line in parallelInfo.ExecuteLines) { var fistNodeInLine = nodes[line.Units[0].Name]; var transition = new Sys_Transition(Guid.NewGuid()); transition.FromNodeId = nodes[parallelInfo.Name.ToLower().Trim()]; transition.ToNodeId = fistNodeInLine; transition.Condition = "true"; transition.CreateTime = DateTime.Now; ctx.Sys_Transitions.Add(transition); InsertDB_Transitions(ctx, line, nodes); } }
private void InsertDB_Nodes(WorkflowContext ctx, Guid?lineId, ParallelInfo parallel, Guid wfId, Dictionary <string, Guid> nodes) { var node_db = new Sys_NodeDefine(Guid.NewGuid()); node_db.WFId = wfId; node_db.Name = parallel.Name; node_db.Status = "normal"; node_db.CreateTime = DateTime.Now; node_db.Description = "auto create"; node_db.IsParallel = true; node_db.ExecuteLineId = lineId; ctx.Sys_NodeDefines.Add(node_db); nodes.Add(node_db.Name, node_db.Id); foreach (var line in parallel.ExecuteLines) { InsertDB_Nodes(ctx, line, node_db, wfId, nodes); } }
internal ParallelInfo Parse() { var rslt = new ParallelInfo(); rslt.Name = this.Name; if (this.Variable != null) rslt.Variable = this.Variable.Parse(); if (this.Init != null) rslt.Init = this.Init.Parse(); if (this.Action != null) rslt.Actions = this.Action.Parse(); if (this.Translation != null) rslt.Translation = this.Translation.Parse(); foreach (var line in this.Execute_Lines) { rslt.ExecuteLines.Add(line.Parse()); } return rslt; }