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(); }
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) { } } }