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