コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: WorkFlowNode.cs プロジェクト: ruo2012/CodeHelper
        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);
            }
        }
コード例 #3
0
ファイル: WorkFlowNode.cs プロジェクト: ruo2012/CodeHelper
        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);
            }
        }
コード例 #4
0
ファイル: Parallel.cs プロジェクト: koksaver/CodeHelper
        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;
        }