public void BasicAdminAddActivityWithFromActivityExecutorTest()
        {
            IWfProcess process = WfProcessTestCommon.StartupSimpleProcess();

            const string targetName = "修改后的名称";

            IWfActivity fromActivity = process.Activities.FindActivityByDescriptorKey("NormalActivity");

            IWfActivityDescriptor targetDesp = new WfActivityDescriptor(process.Descriptor.FindNotUsedActivityKey(), WfActivityType.NormalActivity);

            targetDesp.Properties.SetValue("Name", targetName);
            process.Descriptor.Activities.Add(targetDesp);

            WfActivityBase.CreateActivityInstance(targetDesp, process);

            WfAdminAddActivityExecutor executor = new WfAdminAddActivityExecutor(process.CurrentActivity, process, fromActivity.Descriptor, targetDesp, false);

            executor.Execute();

            process = WfRuntime.GetProcessByProcessID(process.ID);

            targetDesp = process.Descriptor.Activities[targetDesp.Key];

            Assert.IsNotNull(targetDesp);
            Assert.AreEqual(targetName, targetDesp.Properties.GetValue("Name", string.Empty));

            fromActivity = process.Activities.FindActivityByDescriptorKey("NormalActivity");

            Assert.IsNotNull(fromActivity.Descriptor.ToTransitions.GetTransitionByToActivity(targetDesp));
        }
        public void BasicAdminAddActivityWithMainStreamExecutorTest()
        {
            IWfProcess process = WfProcessTestCommon.StartupSimpleProcess();

            const string targetName = "修改后的名称";

            IWfActivityDescriptor targetDesp = new WfActivityDescriptor(process.Descriptor.FindNotUsedActivityKey(), WfActivityType.NormalActivity);

            targetDesp.Properties.SetValue("Name", targetName);
            process.Descriptor.Activities.Add(targetDesp);

            WfActivityBase.CreateActivityInstance(targetDesp, process);

            WfAdminAddActivityExecutor executor = new WfAdminAddActivityExecutor(process.CurrentActivity, process, null, targetDesp, true);

            executor.Execute();

            process = WfRuntime.GetProcessByProcessID(process.ID);

            targetDesp = process.Descriptor.Activities[targetDesp.Key];

            Assert.IsNotNull(targetDesp);
            Assert.AreEqual(targetName, targetDesp.Properties.GetValue("Name", string.Empty));

            IWfActivityDescriptor msActDesp = targetDesp.Instance.GetMainStreamActivityDescriptor();

            Assert.IsNotNull(msActDesp);
            Assert.AreEqual(process.MainStream, msActDesp.Process);
            Assert.AreEqual(targetName, msActDesp.Properties.GetValue("Name", string.Empty));
        }
示例#3
0
        private void descriptorEditor_SaveButtonClicked(object sender, EventArgs e)
        {
            if (this.descriptorEditor.CurrentProcess != null)
            {
                WfActivityDescriptor activityTemplate = new WfActivityDescriptor(
                    this.descriptorEditor.CurrentProcessDescriptor.FindNotUsedActivityKey(),
                    WfActivityType.NormalActivity);

                activityTemplate.Properties.ReplaceExistedPropertyValues(this.propertyGrid.Properties);

                this.descriptorEditor.CurrentProcessDescriptor.Activities.Add(activityTemplate);

                if (this.descriptorEditor.CurrentProcessDescriptor.IsMainStream == false)
                {
                    WfActivityBase.CreateActivityInstance(activityTemplate, this.descriptorEditor.CurrentProcess);
                }

                WfAdminAddActivityExecutor executor = new WfAdminAddActivityExecutor(
                    this.descriptorEditor.CurrentProcess.CurrentActivity,
                    this.descriptorEditor.CurrentProcess,
                    this.FromActivity,
                    activityTemplate,
                    this.syncMSObj.Checked);

                executor.Execute();
            }
        }
示例#4
0
        public static void AddNodeToDescription(IWfProcess process, int addNumber)
        {
            WfNormalActivityBuilder builder = new WfNormalActivityBuilder();
            var desc = process.Descriptor;

            for (var i = 0; i < addNumber; i++)
            {
                WfActivityDescriptor normalAct = new WfActivityDescriptor("Extra" + i, WfActivityType.NormalActivity);
                normalAct.Name         = "Normal" + i;
                normalAct.CodeName     = "Normal Activity" + i;
                normalAct.ActivityType = WfActivityType.NormalActivity;
                normalAct.BranchProcessTemplates.Add(new WfBranchProcessTemplateDescriptor("no delete tks!"));
                desc.Activities.Add(normalAct);

                desc.Activities[1].ToTransitions.AddForwardTransition(normalAct);
                normalAct.ToTransitions.AddForwardTransition(desc.Activities[2]);

                WfActivityBase act = WfActivitySettings.GetConfig().GetActivityBuilder(normalAct).CreateActivity(normalAct);
                act.Process = process;
                process.Activities.Add(act);
            }
        }