public PowerThread Build()
        {
            PowerThread result = new PowerThread(ObjectId, Name);

            result.Roles     = BuildRoles(result.Context);
            result.Views     = BuildViews(result.Context);
            result.Forms     = BuildForms(result.Context);
            result.Variables = BuildVariables(result.Context);
            result.Nodes     = BuildNodes(result.Context);

            // 引用关系
            PatchNodes(result.Context);

            result.SetCurrentNode(PowerThreadDefaultNodes.DefaultStartNode);
            result.SetState(Enums.PowerThreadState.Initial);
            return(result);
        }
        public PowerThread BuildFromSink(Guid threadId, string sinkJson)
        {
            if (sinkJson != null)
            {
                PowerThread result = JsonConvert.DeserializeObject <PowerThread>(sinkJson);

                /**/
                result.Context     = new PowerThreadContext(result);
                result.CurrentNode =
                    result.Nodes.First(p => p.ObjectId == result.CurrentNode.ObjectId);

                PatchNodes(result.Context);

                return(result);
            }

            return(null);
        }
Beispiel #3
0
 public PowerThreadContext(PowerThread powerThread)
 {
     this.PowerThread = powerThread;
 }