public static function castDownActivityItem(Item $activityItem)
 {
     $relationModelClassNames = ActivitiesUtil::getActivityItemsModelClassNames();
     foreach ($relationModelClassNames as $relationModelClassName) {
         try {
             $modelDerivationPathToItem = RuntimeUtil::getModelDerivationPathToItem($relationModelClassName);
             return $activityItem->castDown(array($modelDerivationPathToItem));
         } catch (NotFoundException $e) {
         }
     }
 }
 /**
  * Get meeting attendees from activity items. It returns Contact, Opportunity or Account ids
  * @param $meeting
  * @return array
  * @throws Exception
  */
 protected static function getAttendeesFromActivityItems($meeting)
 {
     $data = array();
     $activityClassNames = ActivitiesUtil::getActivityItemsModelClassNames();
     try {
         foreach ($activityClassNames as $activityClassName) {
             foreach ($meeting->activityItems as $activityItem) {
                 try {
                     $modelDerivationPathToItem = RuntimeUtil::getModelDerivationPathToItem($activityClassName);
                     $castedDownModel = $activityItem->castDown(array($modelDerivationPathToItem));
                     $item = array();
                     $item['id'] = $castedDownModel->id;
                     if ($castedDownModel instanceof Contact) {
                         if ($castedDownModel->primaryEmail->emailAddress != null) {
                             $item['email'] = $castedDownModel->primaryEmail->emailAddress;
                         }
                         $item['firstName'] = $castedDownModel->firstName;
                         $item['lastName'] = $castedDownModel->lastName;
                     } elseif ($castedDownModel instanceof Account || $castedDownModel instanceof Opportunity) {
                         $item['name'] = $castedDownModel->name;
                     }
                     $data[$activityClassName][] = $item;
                 } catch (NotFoundException $e) {
                 }
             }
         }
     } catch (Exception $e) {
         $message = $e->getMessage();
         throw new Exception($message);
     }
     return $data;
 }