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

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

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

            IWfTransitionDescriptor targetDesp = fromActivity.Descriptor.ToTransitions.AddBackwardTransition(process.Descriptor.InitialActivity);

            targetDesp.Properties.SetValue("Name", targetName);

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

            executor.Execute();

            process = WfRuntime.GetProcessByProcessID(process.ID);

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

            targetDesp = fromActivity.Descriptor.ToTransitions.GetTransitionByToActivity(process.Descriptor.InitialActivity);

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

            IWfActivityDescriptor msFromActDesp = process.MainStream.Activities["NormalActivity"];
            IWfActivityDescriptor msToActDesp   = process.MainStream.InitialActivity;

            targetDesp = msFromActDesp.ToTransitions.GetTransitionByToActivity(msToActDesp);

            Assert.IsNotNull(targetDesp);
            Assert.AreEqual(targetName, targetDesp.Properties.GetValue("Name", string.Empty));
        }
예제 #2
0
        private void descriptorEditor_SaveButtonClicked(object sender, EventArgs e)
        {
            if (this.descriptorEditor.CurrentProcess != null)
            {
                IWfActivityDescriptor toActivity = this.descriptorEditor.CurrentProcessDescriptor.Activities[this.Request.Form["ToActivityKey"]];

                IWfTransitionDescriptor transition = this.FromActivity.ToTransitions.AddForwardTransition(toActivity);

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

                WfAdminAddTransitionExecutor executor = new WfAdminAddTransitionExecutor(
                    this.descriptorEditor.CurrentProcess.CurrentActivity,
                    this.descriptorEditor.CurrentProcess,
                    transition,
                    this.syncMSObj.Checked);

                executor.Execute();
            }
        }