/**
  * saves all attendee of given event
  * 
  * NOTE: This function is executed in a create/update context. As such the user
  *       has edit/update the event and can do anything besides status settings of attendee
  * 
  * @todo add support for resources
  * 
  * @param Calendar_Model_Event $_event
  * @param Calendar_Model_Event $_currentEvent
  * @param bool                 $_isRescheduled event got rescheduled reset all attendee status
  */
 protected function _saveAttendee($_event, $_currentEvent = NULL, $_isRescheduled = FALSE)
 {
     if (!$_event->attendee instanceof Tinebase_Record_RecordSet) {
         $_event->attendee = new Tinebase_Record_RecordSet('Calendar_Model_Attender');
     }
     Calendar_Model_Attender::resolveEmailOnlyAttendee($_event);
     $_event->attendee->cal_event_id = $_event->getId();
     Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . " About to save attendee for event {$_event->id} ");
     $currentAttendee = $_currentEvent->attendee;
     $diff = $currentAttendee->getMigration($_event->attendee->getArrayOfIds());
     $calendar = Tinebase_Container::getInstance()->getContainerById($_event->container_id);
     // delete attendee
     $this->_backend->deleteAttendee($diff['toDeleteIds']);
     foreach ($diff['toDeleteIds'] as $deleteAttenderId) {
         $idx = $currentAttendee->getIndexById($deleteAttenderId);
         if ($idx !== FALSE) {
             $currentAttenderToDelete = $currentAttendee[$idx];
             $this->_increaseDisplayContainerContentSequence($currentAttenderToDelete, $_event, Tinebase_Model_ContainerContent::ACTION_DELETE);
         }
     }
     // create/update attendee
     foreach ($_event->attendee as $attender) {
         $attenderId = $attender->getId();
         $idx = $attenderId ? $currentAttendee->getIndexById($attenderId) : FALSE;
         if ($idx !== FALSE) {
             $currentAttender = $currentAttendee[$idx];
             $this->_updateAttender($attender, $currentAttender, $_event, $_isRescheduled, $calendar);
         } else {
             $this->_createAttender($attender, $_event, FALSE, $calendar);
         }
     }
 }