/// <summary> /// 添加实例活动的秘书环节 /// </summary> /// <param name="operation"></param> /// <param name="generatedActivities"></param> private static AddSecretaryResult AddInstanceSecretaryActivities(WfSecretaryOperation operation, List <IWfActivity> generatedActivities) { AddSecretaryResult result = new AddSecretaryResult(); //保留住原来领导活动的出线 List <IWfTransitionDescriptor> templateToTransitions = new List <IWfTransitionDescriptor>(operation.ActivityDescriptor.ToTransitions); IWfActivityDescriptor prevSecretaryActDesp = CreateSecretaryActivityDescriptor(operation.ActivityDescriptor, operation.Secretaries); SetActivityPropertiesBooleanValue(prevSecretaryActDesp, false, WfSecretaryDecorator._PrevActForbidProperties); SetActivityPropertiesBooleanValue(prevSecretaryActDesp, true, WfSecretaryDecorator._PrevActAllowProperties); //在领导活动之前插入秘书活动 result.PrevActivity = operation.ActivityDescriptor.Instance.InsertBefore(prevSecretaryActDesp); generatedActivities.Add(result.PrevActivity); DecroateTemplateActivity(operation.ActivityDescriptor, operation.Secretaries); IWfActivityDescriptor succeedSecretaryActDesp = CreateSecretaryActivityDescriptor(operation.ActivityDescriptor, operation.Secretaries); SetActivityPropertiesBooleanValue(succeedSecretaryActDesp, false, WfSecretaryDecorator._SucceedActForbidProperties); result.SucceedActivity = operation.ActivityDescriptor.Instance.Append(succeedSecretaryActDesp, true); generatedActivities.Add(result.SucceedActivity); AdjustTemplateActivityToTransitions(operation.ActivityDescriptor, succeedSecretaryActDesp, templateToTransitions); return(result); }
/// <summary> /// 添加主线活动的秘书环节 /// </summary> /// <param name="operation"></param> /// <param name="msOperationActDesp"></param> private static void AddMainStreamSecretaryActivities(WfSecretaryOperation operation, IWfActivityDescriptor msOperationActDesp, AddSecretaryResult instanceResult) { AddSecretaryResult result = new AddSecretaryResult(); //保留住原来领导活动的出线 List <IWfTransitionDescriptor> templateToTransitions = new List <IWfTransitionDescriptor>(msOperationActDesp.ToTransitions); IWfActivityDescriptor prevSecretaryActDesp = CreateSecretaryActivityDescriptor(msOperationActDesp, operation.Secretaries); SetActivityPropertiesBooleanValue(prevSecretaryActDesp, false, WfSecretaryDecorator._PrevActForbidProperties); SetActivityPropertiesBooleanValue(prevSecretaryActDesp, true, WfSecretaryDecorator._PrevActAllowProperties); msOperationActDesp.InsertBefore(prevSecretaryActDesp); DecroateTemplateActivity(msOperationActDesp, operation.Secretaries); IWfActivityDescriptor succeedSecretaryActDesp = CreateSecretaryActivityDescriptor(msOperationActDesp, operation.Secretaries); SetActivityPropertiesBooleanValue(succeedSecretaryActDesp, false, WfSecretaryDecorator._SucceedActForbidProperties); msOperationActDesp.Append(succeedSecretaryActDesp, true); AdjustTemplateActivityToTransitions(msOperationActDesp, succeedSecretaryActDesp, templateToTransitions); ((WfActivityBase)instanceResult.PrevActivity).MainStreamActivityKey = prevSecretaryActDesp.Key; ((WfActivityBase)instanceResult.SucceedActivity).MainStreamActivityKey = succeedSecretaryActDesp.Key; }
private static void AddSecretaryActivities(WfSecretaryOperation operation, List <IWfActivity> generatedActivities) { AddSecretaryResult instanceResult = AddInstanceSecretaryActivities(operation, generatedActivities); if (operation.ActivityDescriptor.Instance.MainStreamActivityKey.IsNotEmpty()) { AddMainStreamSecretaryActivities(operation, operation.ActivityDescriptor.Instance.GetMainStreamActivityDescriptor(), instanceResult); } }