public WfTransitionDescriptorCollection GetAllEnabledTransitions() { WfTransitionDescriptorCollection result = CreateNewCollection(); foreach (WfTransitionDescriptor transition in this) { if (transition.Enabled) { result.Add(transition); } } result.Sort((t1, t2) => { int compareResult; if (t1.DefaultSelect == t2.DefaultSelect) { compareResult = t1.Priority - t2.Priority; } else { compareResult = (t1.DefaultSelect) ? -1 : 1; } return(compareResult); } ); return(result); }
/// <summary> /// 得到不是动态活动入口线的集合 /// </summary> /// <returns></returns> public WfTransitionDescriptorCollection GetNotDynamicActivityTransitions() { WfTransitionDescriptorCollection result = CreateNewCollection(); foreach (IWfTransitionDescriptor transition in this) { if (transition.IsDynamicActivityTransition == false) { result.Add(transition); } } return(result); }
/// <summary> /// 返回所有的前进线 /// </summary> /// <param name="sortByDefaultSelect">是否按照默认选择属性排序</param> /// <returns></returns> public WfTransitionDescriptorCollection GetAllForwardTransitions(bool sortByDefaultSelect) { WfTransitionDescriptorCollection result = CreateNewCollection(); foreach (IWfTransitionDescriptor transition in this) { if (transition.Properties.GetValue("IsReturn", false) == false) { result.Add(transition); } } return(result); }
/// <summary> /// 得到所有能够流转的前进线,不含退回 /// </summary> /// <param name="sortByDefaultSelect">是否按照默认选择属性排序</param> /// <returns></returns> public WfTransitionDescriptorCollection GetAllCanTransitForwardTransitions(bool sortByDefaultSelect) { WfTransitionDescriptorCollection result = CreateNewCollection(); foreach (IWfTransitionDescriptor transition in this) { try { if (transition.Properties.GetValue("IsReturn", false) == false && transition.CanTransit()) { result.Add(transition); } } catch (WfTransitionEvaluationException ex) { ex.WriteToLog(); } } return(result); }
/// <summary> /// 得到所有符合条件的线。无论是否Enabled /// </summary> /// <param name="sortByDefaultSelect">是否优先按照DefaultSelect排序</param> /// <returns></returns> public WfTransitionDescriptorCollection GetAllConditionMatchedTransitions(bool sortByDefaultSelect) { WfTransitionDescriptorCollection result = CreateNewCollection(); foreach (IWfTransitionDescriptor transition in this) { try { if (transition.ConditionMatched()) { result.Add(transition); } } catch (WfTransitionEvaluationException ex) { ex.WriteToLog(); } } result.Sort(sortByDefaultSelect); return(result); }