protected function _addEventAttendee(Sabre_VObject_Component $_vevent, Calendar_Model_Event $_event)
 {
     if (version_compare($this->_version, '1.0b2', '>')) {
         parent::_addEventAttendee($_vevent, $_event);
     } else {
         // special handling for Lightning <= 1.0b2
         // attendees get screwed up, if the CN contains commas
         Calendar_Model_Attender::resolveAttendee($_event->attendee, FALSE, $_event);
         foreach ($_event->attendee as $eventAttendee) {
             $attendeeEmail = $eventAttendee->getEmail();
             if ($attendeeEmail) {
                 $attendee = new Sabre_VObject_Property('ATTENDEE', (strpos($attendeeEmail, '@') !== false ? 'mailto:' : 'urn:uuid:') . $attendeeEmail);
                 $attendee->add('CN', str_replace(',', null, $eventAttendee->getName()));
                 $attendee->add('CUTYPE', Calendar_Convert_Event_VCalendar_Abstract::$cutypeMap[$eventAttendee->user_type]);
                 $attendee->add('PARTSTAT', $eventAttendee->status);
                 $attendee->add('ROLE', "{$eventAttendee->role}-PARTICIPANT");
                 $attendee->add('RSVP', 'FALSE');
                 if (strpos($attendeeEmail, '@') !== false) {
                     $attendee->add('EMAIL', $attendeeEmail);
                 }
                 $_vevent->add($attendee);
             }
         }
     }
 }
 /**
  * add event attendee to VEVENT object
  *
  * @param \Sabre\VObject\Component\VEvent $vevent
  * @param Calendar_Model_Event            $event
  */
 protected function _addEventAttendee(\Sabre\VObject\Component\VEvent $vevent, Calendar_Model_Event $event)
 {
     parent::_addEventAttendee($vevent, $event);
     if (empty($event->attendee)) {
         return;
     }
     // add organizer as CHAIR Attendee if he's no organizer, otherwise yosemite would add an attendee
     // when editing the event again.
     // NOTE: when the organizer edits the event he becomes attendee anyway, see comments in MSEventFacade::update
     if (version_compare($this->_version, '10.10', '>=')) {
         if (!empty($event->organizer)) {
             $organizerContact = $event->resolveOrganizer();
             if ($organizerContact instanceof Addressbook_Model_Contact) {
                 $organizerAttendee = Calendar_Model_Attender::getAttendee($event->attendee, new Calendar_Model_Attender(array('user_id' => $organizerContact->getId(), 'user_type' => Calendar_Model_Attender::USERTYPE_USER)));
                 if (!$organizerAttendee) {
                     $parameters = array('CN' => $organizerContact->n_fileas, 'CUTYPE' => 'INDIVIDUAL', 'PARTSTAT' => 'ACCEPTED', 'ROLE' => 'CHAIR');
                     $organizerEmail = $organizerContact->email;
                     if (strpos($organizerEmail, '@') !== false) {
                         $parameters['EMAIL'] = $organizerEmail;
                     }
                     $vevent->add('ATTENDEE', (strpos($organizerEmail, '@') !== false ? 'mailto:' : 'urn:uuid:') . $organizerEmail, $parameters);
                 }
             }
         }
     }
 }
 /**
  * (non-PHPdoc)
  * @see Calendar_Convert_Event_VCalendar_Abstract::_addEventAttendee()
  */
 protected function _addEventAttendee(\Sabre\VObject\Component\VEvent $vevent, Calendar_Model_Event $event)
 {
     if (version_compare($this->_version, '1.0b2', '>')) {
         parent::_addEventAttendee($vevent, $event);
     } else {
         // special handling for Lightning <= 1.0b2
         // attendees get screwed up, if the CN contains commas
         Calendar_Model_Attender::resolveAttendee($event->attendee, FALSE, $event);
         foreach ($event->attendee as $eventAttendee) {
             $attendeeEmail = $eventAttendee->getEmail();
             if ($attendeeEmail) {
                 $parameters = array('CN' => str_replace(',', null, $eventAttendee->getName()), 'CUTYPE' => Calendar_Convert_Event_VCalendar_Abstract::$cutypeMap[$eventAttendee->user_type], 'PARTSTAT' => $eventAttendee->status, 'ROLE' => "{$eventAttendee->role}-PARTICIPANT", 'RSVP' => 'FALSE');
                 if (strpos($attendeeEmail, '@') !== false) {
                     $parameters['EMAIL'] = $attendeeEmail;
                 }
                 $vevent->add('ATTENDEE', (strpos($attendeeEmail, '@') !== false ? 'mailto:' : 'urn:uuid:') . $attendeeEmail, $parameters);
             }
         }
     }
 }