Example #1
0
 /**
  * @param $message
  * @param OphCoMessaging_Message_MessageType $type
  * @param string                             $source
  * @param string                             $alertAddress
  *
  * @return Element_OphCoMessaging_Message
  *
  * @throws \CDbException
  * @throws \Exception
  */
 public function save($message = '', $source = '')
 {
     $messageEvent = new \Event();
     $messageEvent->episode_id = $this->episode->id;
     $messageEvent->created_user_id = $messageEvent->last_modified_user_id = $this->sender->id;
     $messageEvent->event_date = date('Y-m-d');
     $messageEvent->event_type_id = $this->getEventType()->id;
     $messageEvent->is_automated = 1;
     $messageEvent->automated_source = $source;
     if ($messageEvent->save(true, null, true)) {
         $messageEvent->refresh();
         $messageElement = new Element_OphCoMessaging_Message();
         $messageElement->event_id = $messageEvent->id;
         $messageElement->created_user_id = $messageElement->last_modified_user_id = $this->sender->id;
         $messageElement->for_the_attention_of_user_id = $this->recipient->id;
         $messageElement->message_type_id = $this->type->id;
         if ($this->messageTemplate) {
             $messageElement->message_text = $this->renderTemplate();
         } else {
             $messageElement->message_text = $message;
         }
         if (!$messageElement->save()) {
             throw new \CDbException('Element save failed: ' . print_r($messageElement->getErrors(), true));
         }
     } else {
         throw new \CDbException('Event save failed: ' . print_r($messageEvent->getErrors(), true));
     }
     return $messageElement;
 }