private static void ValidateSecondCapTwoTransitionsProperties(WfCreateActivityParam cap) { Assert.AreEqual(cap.TransitionTemplates.Count, cap.CreatedDescriptor.ToTransitions.Count); Assert.AreEqual(cap.CreatedDescriptor.Process.InitialActivity.Key, cap.CreatedDescriptor.ToTransitions[1].ToActivity.Key); Assert.IsTrue(cap.CreatedDescriptor.ToTransitions[1].IsBackward); Assert.IsFalse(cap.CreatedDescriptor.ToTransitions[1].DefaultSelect); }
/// <summary> /// 初始化出线的属性 /// </summary> /// <param name="cap"></param> /// <param name="row"></param> private static void InitTransitionTemplatesProperties(WfCreateActivityParam cap, SOARolePropertyDefinitionCollection definitions, SOARolePropertyRow row) { string json = row.Values.GetValue(SOARolePropertyDefinition.TransitionsColumn, row.GetPropertyDefinitions().GetColumnDefaultValue(SOARolePropertyDefinition.TransitionsColumn, string.Empty)); if (json.IsNotEmpty()) { cap.TransitionTemplates.FromJson(json); } }
/// <summary> /// 准备带线的一个活动的创建参数,一条退回到首节点,一条继续往下(默认选择) /// </summary> /// <returns></returns> private static WfCreateActivityParamCollection PrepareOneActivityWithTransitionsCreateParams() { WfCreateActivityParamCollection result = new WfCreateActivityParamCollection(); WfCreateActivityParam cap1 = new WfCreateActivityParam(); cap1.ActivitySN = 10; PrepareFirstCapTwoTransitions(cap1); result.Add(cap1); return(result); }
private static void PrepareSecondCapTwoTransitions(WfCreateActivityParam cap) { WfCreateTransitionParam transition1 = new WfCreateTransitionParam(); transition1.Parameters["DefaultSelect"] = true; WfCreateTransitionParam transition2 = new WfCreateTransitionParam(); transition2.Parameters["DefaultSelect"] = false; transition2.Parameters["ToActivityKey"] = "FirstActivity"; transition2.Parameters["IsReturn"] = true; cap.TransitionTemplates.Add(transition1); cap.TransitionTemplates.Add(transition2); }
//沈峥注释掉,2015/6/21.必须提供列定义 //public void FillCreateActivityParams(WfCreateActivityParamCollection capc, PropertyDefineCollection definedProperties) //{ // SOARolePropertyDefinitionCollection definitions = null; // SOARole role = this._Role as SOARole; // if (role != null) // definitions = role.PropertyDefinitions; // else // definitions = new SOARolePropertyDefinitionCollection(); // this.FillCreateActivityParams(capc, definitions, definedProperties); //} public void FillCreateActivityParams(WfCreateActivityParamCollection capc, SOARolePropertyDefinitionCollection definitions, PropertyDefineCollection definedProperties) { capc.NullCheck("capc"); definitions.NullCheck("definitions"); SOARolePropertyRowUsersCollection rowsUsers = GenerateRowsUsers(); rowsUsers.ForEach(rowUsers => capc.Add(WfCreateActivityParam.FromRowUsers(rowUsers, definitions, definedProperties))); if (definitions.MatrixType == WfMatrixType.ActivityMatrix) { capc.MergeSameActivityParamBySN(); } capc.ForEach(cap => InitTransitionTemplatesProperties(cap, definitions, cap.Source)); }
/// <summary> /// 准备两个活动的创建参数,没有线参数 /// </summary> /// <returns></returns> private static WfCreateActivityParamCollection PrepareTwoActivitiesCreateParams() { WfCreateActivityParamCollection result = new WfCreateActivityParamCollection(); WfCreateActivityParam cap1 = new WfCreateActivityParam(); cap1.ActivitySN = 10; result.Add(cap1); WfCreateActivityParam cap2 = new WfCreateActivityParam(); cap2.ActivitySN = 20; cap2.Template.CodeName = "TestCodeName"; result.Add(cap2); return(result); }
private static WfCreateActivityParamCollection UsersToCreateActivityParams(OguDataCollection <IUser> users, PropertyDefineCollection definedProperties) { WfCreateActivityParamCollection result = new WfCreateActivityParamCollection(); int i = 0; foreach (IUser user in users) { WfCreateActivityParam param = new WfCreateActivityParam(); param.ActivitySN = i++; param.Template.Properties.MergeDefinedProperties(definedProperties); param.Template.Resources.Add(new WfUserResourceDescriptor(user)); param.Template.Variables.Add(new WfVariableDescriptor(WfProcessBuilderBase.AutoBuiltActivityVariableName, "True", DataType.Boolean)); result.Add(param); } return(result); }
/// <summary> /// 准备带线的两个活动的创建参数 /// </summary> /// <returns></returns> private static WfCreateActivityParamCollection PrepareTwoActivitiesWithTransitionsCreateParams() { WfCreateActivityParamCollection result = new WfCreateActivityParamCollection(); WfCreateActivityParam cap1 = new WfCreateActivityParam(); cap1.ActivitySN = 10; PrepareFirstCapTwoTransitions(cap1); result.Add(cap1); WfCreateActivityParam cap2 = new WfCreateActivityParam(); cap2.ActivitySN = 20; cap2.Template.CodeName = "TestCodeName"; PrepareSecondCapTwoTransitions(cap2); result.Add(cap2); return(result); }
private static void ValidateSecondCapTwoTransitionsProperties(WfCreateActivityParam cap) { Assert.AreEqual(cap.TransitionTemplates.Count, cap.CreatedDescriptor.ToTransitions.Count); Assert.AreEqual(cap.CreatedDescriptor.Process.InitialActivity.Key, cap.CreatedDescriptor.ToTransitions[1].ToActivity.Key); Assert.IsTrue(cap.CreatedDescriptor.ToTransitions[1].IsBackward); Assert.IsFalse(cap.CreatedDescriptor.ToTransitions[1].DefaultSelect); }
private static void PrepareSecondCapTwoTransitions(WfCreateActivityParam cap) { WfCreateTransitionParam transition1 = new WfCreateTransitionParam(); transition1.Parameters["DefaultSelect"] = true; WfCreateTransitionParam transition2 = new WfCreateTransitionParam(); transition2.Parameters["DefaultSelect"] = false; transition2.Parameters["ToActivityKey"] = "FirstActivity"; transition2.Parameters["IsReturn"] = true; cap.TransitionTemplates.Add(transition1); cap.TransitionTemplates.Add(transition2); }
/// <summary> /// 准备带线的一个活动的创建参数,一条退回到首节点,一条继续往下(默认选择) /// </summary> /// <returns></returns> private static WfCreateActivityParamCollection PrepareOneActivityWithTransitionsCreateParams() { WfCreateActivityParamCollection result = new WfCreateActivityParamCollection(); WfCreateActivityParam cap1 = new WfCreateActivityParam(); cap1.ActivitySN = 10; PrepareFirstCapTwoTransitions(cap1); result.Add(cap1); return result; }
/// <summary> /// 准备带线的两个活动的创建参数 /// </summary> /// <returns></returns> private static WfCreateActivityParamCollection PrepareTwoActivitiesWithTransitionsCreateParams() { WfCreateActivityParamCollection result = new WfCreateActivityParamCollection(); WfCreateActivityParam cap1 = new WfCreateActivityParam(); cap1.ActivitySN = 10; PrepareFirstCapTwoTransitions(cap1); result.Add(cap1); WfCreateActivityParam cap2 = new WfCreateActivityParam(); cap2.ActivitySN = 20; cap2.Template.CodeName = "TestCodeName"; PrepareSecondCapTwoTransitions(cap2); result.Add(cap2); return result; }
/// <summary> /// 准备两个活动的创建参数,没有线参数 /// </summary> /// <returns></returns> private static WfCreateActivityParamCollection PrepareTwoActivitiesCreateParams() { WfCreateActivityParamCollection result = new WfCreateActivityParamCollection(); WfCreateActivityParam cap1 = new WfCreateActivityParam(); cap1.ActivitySN = 10; result.Add(cap1); WfCreateActivityParam cap2 = new WfCreateActivityParam(); cap2.ActivitySN = 20; cap2.Template.CodeName = "TestCodeName"; result.Add(cap2); return result; }
private WfActivityDescriptorCollection CreateActivities(WfTransitionDescriptorCollection fromTransitions, WfCreateActivityParamCollection capc, WfTransitionDescriptorCollection toTransitions) { WfActivityDescriptorCollection result = new WfActivityDescriptorCollection(this.Process); IWfActivityDescriptor firstDynamicActivity = null; IWfActivityDescriptor lastDynamicActivity = null; WfCreateActivityParam lastCreatedActivityParam = null; foreach (WfCreateActivityParam cap in capc) { WfActivityDescriptor actDesp = (WfActivityDescriptor)cap.Template.Clone(); actDesp.Process = this.Process; string newActKey = "ND" + cap.ActivitySN; if (this.Process.Activities.ContainsKey(newActKey)) { newActKey = this.Process.FindNotUsedActivityKey(); } actDesp.Key = newActKey; cap.CreatedDescriptor = actDesp; this.Process.Activities.Add(actDesp); if (lastCreatedActivityParam != null) { lastCreatedActivityParam.DefaultNextDescriptor = actDesp; } lastCreatedActivityParam = cap; if (this.IsMainStreamActivity == false && this.ProcessInstance != null) { WfActivityBase.CreateActivityInstance(actDesp, this.ProcessInstance); } if (firstDynamicActivity == null) { firstDynamicActivity = actDesp; } if (lastDynamicActivity != null) { WfTransitionDescriptor newTransition = (WfTransitionDescriptor)lastDynamicActivity.ToTransitions.AddForwardTransition(actDesp); //如果不是第一个生成的活动 if (firstDynamicActivity != actDesp) { newTransition.GeneratedByTemplate = true; newTransition.TemplateKey = this.Key; } } lastDynamicActivity = actDesp; result.Add(actDesp); } if (firstDynamicActivity != null && lastDynamicActivity != null) { SetEntryTransitionsProperties(firstDynamicActivity, fromTransitions); if (lastCreatedActivityParam != null) { IWfTransitionDescriptor defaultTransition = toTransitions.GetAllConditionMatchedTransitions().FindDefaultSelectTransition(true); if (defaultTransition != null) { lastCreatedActivityParam.DefaultNextDescriptor = defaultTransition.ToActivity; } } capc.AdjustTransitionsByTemplate(this.Key); //如果在活动模板参数的最后一个活动没有配置出线,则使用默认的出线;否则使用配置的出线 if (lastDynamicActivity.ToTransitions.Count == 0) { SetExitTransitionsProperties(lastDynamicActivity, toTransitions); } else { lastDynamicActivity.ToTransitions.ForEach(t => SetDynamicTransitionProperties(null, t, this, false)); } } else { //当没有动态活动生成时,前后的活动直接串联到一起 JoinOriginalActivitiesAndSetProperties(fromTransitions, toTransitions); } //将模版点的进出线的Enabled都设置为False fromTransitions.ForEach(t => ((WfTransitionDescriptor)t).Enabled = false); toTransitions.ForEach(t => ((WfTransitionDescriptor)t).Enabled = false); return(result); }