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