protected Long persistMessage(String messageOut) {

    if (messageEntity == null) {
      messageEntity = new MessageEntity();
      messageEntity.setEventDate(new Date());
      if (messageOut != null) {
        messageEntity.setMessage(messageOut);
      }
      messageEntity.setService(getServiceEntity());
      if ((getServiceEventEntity() == null)
          || (getServiceEventEntity() != null
              && getServiceEventEntity().getNotifyMessage()
              && getResponseEntity().getResponse() != null)) {
        messageEntity.setMessage(getResponseEntity().getResponse());
        messageEntity.setState(MessageState.RECEIVED.ordinal());
      }
      /*
       * TODO: no tengo idea de porque se hace esto
       */
      else {
        messageEntity.setState(MessageState.DELIVERED.ordinal());
      }
      messageEntity.setService(getServiceEntity());
      Long id = CsTigoApplication.getMessageHelper().insert(messageEntity);
      messageEntity.setId(id);
    } else {
      if (messageOut != null) {
        messageEntity.setMessage(messageOut);
      }
      CsTigoApplication.getMessageHelper().update(messageEntity);
    }
    return messageEntity.getId();
  }
  protected void validate() throws Exception {
    if (!CsTigoApplication.getGlobalParameterHelper().getDeviceEnabled()) {

      CsTigoApplication.vibrate(false);
      CsTigoApplication.showNotification(
          CSTigoNotificationID.SERVICE_UPDATE,
          CsTigoApplication.getContext().getString(R.string.disabled_device),
          CsTigoApplication.getContext().getString(R.string.disabled_device_desc),
          MainActivity.class);

      String messageIn = CsTigoApplication.getContext().getString(R.string.disabled_device_desc);
      MessageEntity messageEntity = new MessageEntity();
      messageEntity.setEventDate(new Date());
      messageEntity.setMessage(messageIn);
      messageEntity.setService(getServiceEntity());
      messageEntity.setState(MessageState.RECEIVED.ordinal());
      CsTigoApplication.getMessageHelper().insert(messageEntity);
      throw new Exception("");
    }
  }