/**
  * Utilized to create or update model attribute values after a workflow's triggers are fired as true.
  * @param WorkflowActionProcessingModelAdapter $adapter
  * @param $attribute
  * @throws NotSupportedException
  */
 public function resolveValueAndSetToModel(WorkflowActionProcessingModelAdapter $adapter, $attribute)
 {
     assert('is_string($attribute)');
     if ($this->type == WorkflowActionAttributeForm::TYPE_STATIC) {
         $adapter->getModel()->{$attribute} = User::getById((int) $this->value);
     } elseif ($this->type == self::TYPE_DYNAMIC_OWNER_OF_TRIGGERED_MODEL) {
         if ($adapter->getTriggeredModel() instanceof OwnedSecurableItem) {
             $adapter->getModel()->{$attribute} = $adapter->getTriggeredModel()->owner;
         }
     } elseif ($this->type == self::TYPE_DYNAMIC_CREATED_BY_USER) {
         $adapter->getModel()->{$attribute} = $adapter->getTriggeredModel()->createdByUser;
     } elseif ($this->type == self::TYPE_DYNAMIC_MODIFIED_BY_USER) {
         $adapter->getModel()->{$attribute} = $adapter->getTriggeredModel()->modifiedByUser;
     } elseif ($this->type == self::TYPE_DYNAMIC_TRIGGERED_BY_USER) {
         $adapter->getModel()->{$attribute} = $adapter->getTriggeredByUser();
     } else {
         throw new NotSupportedException();
     }
 }
 protected function resolveValueForMergeTags($value, WorkflowActionProcessingModelAdapter $adapter)
 {
     $mergeTagsUtil = MergeTagsUtilFactory::make(EmailTemplate::TYPE_WORKFLOW, Yii::app()->languageHelper->getByUser($adapter->getTriggeredByUser()), $value);
     if (false === ($resolvedValue = $mergeTagsUtil->resolveMergeTags($adapter->getTriggeredModel()))) {
         return $value;
     }
     return $resolvedValue;
 }