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
            });
        }