public void MakeTransition(CMMNTransitions transition, DateTime executionDateTime) { UpdateTransition(transition, executionDateTime); TransitionHistories.Add(new CasePlanElementInstanceTransitionHistory { ExecutionDateTime = executionDateTime, Transition = transition }); }
public void MakeTransition(CMMNTransitions transition, string message, DateTime executionDateTime) { switch (Type) { case CasePlanElementInstanceTypes.MILESTONE: case CasePlanElementInstanceTypes.TIMER: { var newState = GetMilestoneOrEventListenerState(MilestoneState, transition); if (newState != null) { MilestoneState = newState; } } break; case CasePlanElementInstanceTypes.EMPTYTASK: case CasePlanElementInstanceTypes.HUMANTASK: case CasePlanElementInstanceTypes.PROCESSTASK: case CasePlanElementInstanceTypes.STAGE: { if (transition == CMMNTransitions.ParentTerminate) { if (TakeStageState != TaskStageStates.Completed && TakeStageState != TaskStageStates.Terminated) { TakeStageState = TaskStageStates.Terminated; } } else { TakeStageState = GetTaskStageState(TakeStageState, transition); } } break; case CasePlanElementInstanceTypes.FILEITEM: { var newState = GetCaseFileItemState(FileState, transition); if (newState != null) { FileState = newState; } } break; } TransitionHistories.Add(new CaseEltInstanceTransitionHistory { Message = message, ExecutionDateTime = executionDateTime, Transition = transition }); }
public object Clone() { return(new CaseEltInstance { Children = Children.Select(_ => (CaseEltInstance)_.Clone()).ToList(), EltId = EltId, Id = Id, Name = Name, TransitionHistories = TransitionHistories.Select(_ => (CaseEltInstanceTransitionHistory)_.Clone()).ToList(), Type = Type, Criterias = Criterias.Select(_ => (Criteria)_.Clone()).ToList(), FileState = FileState, IsBlocking = IsBlocking, ManualActivationRule = (ManualActivationRule)ManualActivationRule?.Clone(), MilestoneState = MilestoneState, NbOccurrence = NbOccurrence, Properties = Properties.Select(_ => (CaseEltInstanceProperty)_.Clone()).ToList(), RepetitionRule = (RepetitionRule)RepetitionRule?.Clone(), TakeStageState = TakeStageState }); }
protected void FeedCaseEltInstance(BaseCaseEltInstance elt) { elt.Id = Id; elt.Name = Name; elt.EltId = EltId; elt.TransitionHistories = new ConcurrentBag <CasePlanElementInstanceTransitionHistory>(TransitionHistories.Select(_ => (CasePlanElementInstanceTransitionHistory)_.Clone())); }