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_Transitions(WorkflowContext ctx, NodeInfo nodeInfo, Dictionary <string, Guid> nodes) { if (nodeInfo.Translation == null || nodeInfo.Translation.Statments == null) { return; } foreach (var tr in nodeInfo.Translation.Statments) { var transition = new Sys_Transition(Guid.NewGuid()); transition.FromNodeId = nodes[nodeInfo.Name.ToLower().Trim()]; transition.ToNodeId = nodes[tr.Target.ToLower().Trim()]; var builder = new IndentStringBuilder(); tr.Expression.Render(builder); transition.Condition = builder.ToString(); transition.CreateTime = DateTime.Now; ctx.Sys_Transitions.Add(transition); } }