@Override
  @Transactional
  public MultimediaImpl createMultimedia(
      BlackboardMultimediaResponse multimediaResponse, String filename) {
    // Find the creator user
    final String creatorId = multimediaResponse.getCreatorId();
    ConferenceUserImpl creator = this.conferenceUserDao.getUserByUniqueId(creatorId);
    if (creator == null) {
      logger.warn(
          "Internal user {} doesn't exist for {}. Creating a bare bones user to compensate",
          creatorId,
          multimediaResponse);
      creator = this.conferenceUserDao.createInternalUser(creatorId);
    }

    // Create and populate a new blackboardMultimedia
    final MultimediaImpl blackboardMultimedia =
        new MultimediaImpl(multimediaResponse.getMultimediaId(), creator);
    updateBlackboardMultimedia(multimediaResponse, filename, blackboardMultimedia);

    // Persist and return the new multimedia
    this.getEntityManager().persist(blackboardMultimedia);

    creator.getMultimedias().add(blackboardMultimedia);
    this.getEntityManager().persist(creator);

    return blackboardMultimedia;
  }
  @Override
  @Transactional
  public void deleteMultimedia(Multimedia multimedia) {
    Validate.notNull(multimedia, "multimedia can not be null");

    final EntityManager entityManager = this.getEntityManager();

    final MultimediaImpl multimediaImpl =
        entityManager.find(MultimediaImpl.class, multimedia.getMultimediaId());

    final ConferenceUser creator = multimediaImpl.getCreator();
    final ConferenceUserImpl creatorImpl = this.conferenceUserDao.getUser(creator.getUserId());
    creatorImpl.getMultimedias().remove(multimediaImpl);

    entityManager.remove(multimediaImpl);
    // entityManager.remove(creatorImpl);
  }