Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method SetRecurrencePatternWeekly ( 
 | 
  Boolean monday_i, 
 | 
  Boolean tuesday_i, 
 | 
  Boolean wednesday_i, 
 | 
  Boolean thursday_i, 
 | 
  Boolean friday_i, 
 | 
  Boolean saturday_i, 
 | 
  Boolean sunday_i 
 | 
) as LibCal_Event 
 | 
{ 
 | 
  Description: 'Set a recurrence pattern that recurs every week.' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Use a FeedbackObject the collect the validation feedback. 
 | 
    feedback := LibCal_Validate::FeedbackObject();  
 | 
     
 | 
    moreInfo := this.GetEventInfo(); 
 | 
    LibCal_Validate::RegisterError( LibCal_Validate::Event_Pattern_Weekdays( monday_i, tuesday_i, wednesday_i, thursday_i, friday_i, saturday_i, sunday_i ), moreInfo ); 
 | 
     
 | 
    // Process the feedback that has been registered by the validation (if any). 
 | 
    LibCal_Util::ProcessFeedbackObject( feedback ); 
 | 
     
 | 
    // The below is only executed when no validation errors were encountered. 
 | 
    // Check if a new RecurrencePattern must be created. 
 | 
    pattern      := guard( this.RecurrencePattern().astype( LibCal_RecurrencePatternWeekly ), null( LibCal_RecurrencePatternWeekly ) ); 
 | 
    changeOfType := isnull( pattern ); 
 | 
     
 | 
    isChanged := changeOfType  // There was no pattern yet, or it was not a Weekly pattern 
 | 
              or pattern.Monday()    <> monday_i 
 | 
              or pattern.Tuesday()   <> tuesday_i 
 | 
              or pattern.Wednesday() <> wednesday_i 
 | 
              or pattern.Thursday()  <> thursday_i 
 | 
              or pattern.Friday()    <> friday_i 
 | 
              or pattern.Saturday()  <> saturday_i 
 | 
              or pattern.Sunday()    <> sunday_i; 
 | 
     
 | 
    if( isChanged ) 
 | 
    { 
 | 
      // Create the RecurrencePattern. 
 | 
      LibCal_RecurrencePatternWeekly::Create( this, monday_i, tuesday_i, wednesday_i, thursday_i, friday_i, saturday_i, sunday_i ); 
 | 
      this.IsChanged( true ); 
 | 
     
 | 
      // Initialize the RecurrencePeriod of the LeadingParticipation if necessary. 
 | 
      this.InitializeRecurrencePeriod(); 
 | 
    } 
 | 
     
 | 
    // Make the API fluent. 
 | 
    return this; 
 | 
  *] 
 | 
} 
 |