Search in sources :

Example 6 with UserCommentImpl

use of org.olat.core.commons.services.commentAndRating.model.UserCommentImpl in project openolat by klemens.

the class UserCommentsDAO method deleteAllComments.

/**
 * @see org.olat.core.commons.services.commentAndRating.UserCommentsManager#deleteAllComments()
 */
public int deleteAllComments(OLATResourceable ores, String resSubPath) {
    EntityManager em = dbInstance.getCurrentEntityManager();
    // special query when sub path is null
    List<UserCommentImpl> comments;
    if (resSubPath == null) {
        StringBuilder sb = new StringBuilder();
        sb.append("select comment from usercomment comment").append(" where resName=:resName and resId=:resId and resSubPath is null").append(" order by creationDate desc");
        comments = em.createQuery(sb.toString(), UserCommentImpl.class).setParameter("resName", ores.getResourceableTypeName()).setParameter("resId", ores.getResourceableId()).getResultList();
    } else {
        StringBuilder sb = new StringBuilder();
        sb.append("select comment from usercomment comment").append(" where resName=:resName and resId=:resId and resSubPath=:resSubPath").append(" order by creationDate desc");
        comments = em.createQuery(sb.toString(), UserCommentImpl.class).setParameter("resName", ores.getResourceableTypeName()).setParameter("resId", ores.getResourceableId()).setParameter("resSubPath", resSubPath).getResultList();
    }
    if (comments != null && !comments.isEmpty()) {
        for (UserCommentImpl comment : comments) {
            em.remove(comment);
        }
    }
    updateDelegateRatings(ores, resSubPath);
    return comments == null ? 0 : comments.size();
}
Also used : EntityManager(javax.persistence.EntityManager) UserCommentImpl(org.olat.core.commons.services.commentAndRating.model.UserCommentImpl)

Example 7 with UserCommentImpl

use of org.olat.core.commons.services.commentAndRating.model.UserCommentImpl in project openolat by klemens.

the class UserCommentsDAO method replyTo.

public UserComment replyTo(UserComment originalComment, Identity creator, String replyCommentText) {
    // First reload parent from cache to prevent stale object or cache issues
    originalComment = reloadComment(originalComment);
    if (originalComment == null) {
        // Original comment has been deleted in the meantime. Don't create a reply
        return null;
    }
    OLATResourceable ores = OresHelper.createOLATResourceableInstance(originalComment.getResName(), originalComment.getResId());
    UserCommentImpl reply = new UserCommentImpl(ores, originalComment.getResSubPath(), creator, replyCommentText);
    reply.setParent(originalComment);
    dbInstance.getCurrentEntityManager().persist(reply);
    updateDelegateRatings(ores, originalComment.getResSubPath());
    return reply;
}
Also used : OLATResourceable(org.olat.core.id.OLATResourceable) UserCommentImpl(org.olat.core.commons.services.commentAndRating.model.UserCommentImpl)

Example 8 with UserCommentImpl

use of org.olat.core.commons.services.commentAndRating.model.UserCommentImpl in project openolat by klemens.

the class UserCommentsDAO method createComment.

public UserComment createComment(Identity creator, OLATResourceable ores, String resSubPath, String commentText) {
    UserComment comment = new UserCommentImpl(ores, resSubPath, creator, commentText);
    dbInstance.getCurrentEntityManager().persist(comment);
    updateDelegateRatings(ores, resSubPath);
    // do Logging
    ThreadLocalUserActivityLogger.log(CommentAndRatingLoggingAction.COMMENT_CREATED, getClass(), CoreLoggingResourceable.wrap(ores, OlatResourceableType.feedItem));
    return comment;
}
Also used : UserComment(org.olat.core.commons.services.commentAndRating.model.UserComment) UserCommentImpl(org.olat.core.commons.services.commentAndRating.model.UserCommentImpl)

Aggregations

UserCommentImpl (org.olat.core.commons.services.commentAndRating.model.UserCommentImpl)8 EntityManager (javax.persistence.EntityManager)4 UserComment (org.olat.core.commons.services.commentAndRating.model.UserComment)2 OLATResourceable (org.olat.core.id.OLATResourceable)2