Exemple #1
0
        private void ChangeProcessButton_Click(object sender, EventArgs e)
        {
            try
            {
                WfActivityDescriptorCreateParams createParams = null;

                WfMoveToControl.DoActionAfterRegisterContextConverter(() =>
                                                                      createParams = JSONSerializerExecute.Deserialize <WfActivityDescriptorCreateParams>(_HiddenData.Value));

                WfExecutorBase executor = null;

                IWfActivity targetActivity  = FindCurrentActivity(createParams);
                IWfActivity changedActivity = targetActivity;

                switch (createParams.Operation.ToLower())
                {
                case "add":
                    executor = new WfAddActivityExecutor(CurrentActivity, targetActivity, createParams);
                    break;

                case "update":
                    executor = new WfEditActivityExecutor(CurrentActivity, targetActivity, createParams);
                    break;

                case "delete":
                    executor = new WfDeleteActivityExecutor(CurrentActivity, targetActivity);
                    break;

                default:
                    throw new SystemSupportException(string.Format("Invalid operation name: {0}", createParams.Operation));
                }

                WfMoveToControl.Current.OnAfterCreateModifyProcessExecutor(executor);
                WfClientContext.Current.Execute(executor);

                WfMoveToControl.Current.OnProcessChanged(targetActivity.Process);

                RecreateProcesses(WfMoveToControl.Current.NextSteps, false, false);

                if (executor != null)
                {
                    WfMoveToControl.Current.OnAfterProcessChanged(targetActivity.Process);
                }
            }
            catch (System.Exception ex)
            {
                RegisterPostBackException(ex);
            }
        }
Exemple #2
0
        public void BasicEditActivityExecutorTest()
        {
            IWfProcess process = WfProcessTestCommon.StartupSimpleProcess();

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

            WfActivityDescriptorCreateParams createParams = new WfActivityDescriptorCreateParams();

            WfVariableDescriptor variable = new WfVariableDescriptor("CodeName", "HelloKitty");

            createParams.Variables = new WfVariableDescriptor[] { variable };

            WfEditActivityExecutor editExecutor = new WfEditActivityExecutor(process.CurrentActivity, targetActivity, createParams);

            editExecutor.Execute();

            Assert.AreEqual("HelloKitty",
                            process.Descriptor.Activities["NormalActivity"].Properties.GetValue("CodeName", string.Empty));
            Assert.AreEqual("HelloKitty",
                            process.MainStream.Activities["NormalActivity"].Properties.GetValue("CodeName", string.Empty));
        }