示例#1
0
        private ElementExecutionTree CalculateExecutionPlan(IWorkflowElement workflowElement)
        {
            var tree = new ElementExecutionTree();

            foreach (var element in workflowElement.ToElements)
            {
                //plan inner element next elements
            }

            return(tree);
        }
            public MyWorkflow(IModel model, string name, Guid guid)
            {
                Parameters parameters = new Parameters(GroupingCriterion.Parentage, ProcessingCadence.FirstToken, ProcessingTiming.UponReset,
                                                       BlockTargets.ArrivalPort, BlockScope.ThisTokenGroup, BlockDuration.Reset, TransitionTo.Complete, TransitionWhen.UponReceipt,
                                                       ResetCadence.OnLastSiblingNotRunning);

                //m_rootBlock = (IWorkflowElement)wfeType.GetConstructor(new Type[] { }).Invoke(new object[] { });
                m_rootBlock = new FilterBlock(model, name + ".Root", Guid.NewGuid(), 3, parameters);

                m_RootElements.Add(m_rootBlock);
                m_rootBlock.Ports["PrimaryOutput"].PortDataPresented += new PortDataEvent(MyWorkflow_PortDataPresented);
            }