public static function resolveAsUserOrContact(Item $item)
 {
     foreach (array('Contact', 'User') as $modelClassName) {
         try {
             $modelDerivationPathToItem = RuntimeUtil::getModelDerivationPathToItem($modelClassName);
             $model = $item->castDown(array($modelDerivationPathToItem));
             $moduleClassName = $modelClassName::getModuleClassName();
             $linkRoute = '/' . $moduleClassName::getDirectoryName() . '/default/details';
             return ActionSecurityUtil::resolveLinkToModelForCurrentUser(strval($model), $model, $moduleClassName, $linkRoute);
         } catch (NotFoundException $e) {
         }
     }
     throw new NotSupportedException();
 }
 /**
  * @param Item $item
  * @param $dateTime
  * @param $modelClassName
  * @throws FailedToSaveModelException
  */
 public static function resolveItemToModelAndPopulateLatestActivityDateTime(Item $item, $dateTime, $modelClassName)
 {
     assert('is_string($dateTime)');
     assert('is_string($modelClassName)');
     $modelDerivationPathToItem = RuntimeUtil::getModelDerivationPathToItem($modelClassName);
     try {
         $castedDownModel = $item->castDown(array($modelDerivationPathToItem));
         if (DateTimeUtil::isDateTimeStringNull($castedDownModel->latestActivityDateTime) || $dateTime > $castedDownModel->latestActivityDateTime) {
             $castedDownModel->setLatestActivityDateTime($dateTime);
             $saved = $castedDownModel->save();
             if (!$saved) {
                 throw new FailedToSaveModelException();
             }
         }
     } catch (NotFoundException $e) {
         //do nothing
     } catch (AccessDeniedSecurityException $e) {
         //do nothing, since the current user cannot update the related model. Fail silently.
     }
 }
 protected static function castDownItem(Item $item)
 {
     foreach (array('Contact', 'User') as $modelClassName) {
         try {
             $modelDerivationPathToItem = RuntimeUtil::getModelDerivationPathToItem($modelClassName);
             return $item->castDown(array($modelDerivationPathToItem));
         } catch (NotFoundException $e) {
         }
     }
     throw new NotSupportedException();
 }
Example #4
0
 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) {
         }
     }
 }