Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method Update ( 
 | 
  DateTime startTime_i, 
 | 
  DateTime endTime_i, 
 | 
  String comment_i 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    if(     this.Participation().IsLeading() and 
 | 
        not this.Participation().IsRecurring() ) 
 | 
    { 
 | 
      // When the occurrence is the LeadingParticipation of a non-recurring Event, 
 | 
      // then update the Event itself. This will recreate the ExplicitTimeInterval. 
 | 
      event := this.Participation().Event(); 
 | 
      event.SetStart( startTime_i ) 
 | 
           .SetEnd(   endTime_i   ) 
 | 
           .UpdateCalendar(); 
 | 
     
 | 
      // Get the new ETI (there is only one instance), and set the comment. 
 | 
      newETI := select( event.LeadingParticipation(), ExplicitTimeInterval, eti, true ); 
 | 
      if( not isnull( newETI ) ) 
 | 
      { 
 | 
        newETI.Comment( comment_i ); 
 | 
      } 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      this.Start(   startTime_i ); 
 | 
      this.End(     endTime_i   ); 
 | 
      this.Comment( comment_i   ); 
 | 
       
 | 
      // Also update the occurrences of the subscribers. 
 | 
      traverse( this, SubscribingETI, subscribingETI ) 
 | 
      { 
 | 
        subscribingETI.Start( this.Start() ); 
 | 
        subscribingETI.End(   this.End()   ); 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
} 
 |