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 FeedTaskOrStage(BaseTaskOrStageElementInstance elt)
 {
     elt.ManualActivationRule = (ManualActivationRule)ManualActivationRule?.Clone();
     elt.State      = State;
     elt.IsBlocking = IsBlocking;
 }
 public bool IsManualActivationRuleSatisfied(CasePlanInstanceExecutionContext executionContext)
 {
     return(ManualActivationRule.IsSatisfied(executionContext));
 }