@Override public LikeComposite create(LikeComposite newLike) { // TODO Auto-generated method stub String username = (String) getThreadLocalRequest().getSession().getAttribute("loggedUser"); if (username == null) return null; if (username.equals("")) return null; newLike.setUser(username); Interaction like = new Interaction(newLike); java.util.Date today = new java.util.Date(); like.setTimestamp(today); TermSuggestionComposite tsVO = newLike.getTermSuggestion(); Iterator<InteractionComposite> interactionIterator = tsVO.getInteractions().iterator(); while (interactionIterator.hasNext()) { InteractionComposite interactionVO = interactionIterator.next(); String interactionType = interactionVO.getClass().getName(); if (interactionType.compareToIgnoreCase("dilmaj.shared.LikeComposite") == 0) { String un = interactionVO.getUser(); if (username.equals(un)) return null; } } like.setTermSuggestionID(tsVO.getId()); PersistenceManager pm = PMF.get().getPersistenceManager(); try { pm.makePersistent(like); String query = "select from " + TermSuggestion.class.getName() + " where id==" + tsVO.getId(); List<TermSuggestion> allTermSuggestions = (List<TermSuggestion>) pm.newQuery(query).execute(); if (allTermSuggestions == null) return null; if (allTermSuggestions.size() != 1) return null; TermSuggestion ts = allTermSuggestions.get(0); ts.addInteractionID(like.getId()); newLike.setId(like.getId()); newLike.setTimestamp(like.getTimestamp()); pm.makePersistent(ts); // tsVO.a } finally { pm.close(); } String fullURL = getThreadLocalRequest().getRequestURL().toString(); String request = getThreadLocalRequest().getRequestURI(); int index = fullURL.indexOf(request); String baseURL = fullURL.substring(0, index); String termURL = baseURL + "?termId=" + tsVO.getTerm().getId(); String suggestionURL = baseURL + "?termSuggestionId=" + tsVO.getId(); // sending notification email String tsOwner = tsVO.getSuggestion().getUser(); String message = newLike.getUser() + " likes your suggestion <a href=\"" + suggestionURL + "\">" + tsVO.getSuggestion().getCaption() + "</a> for the term <a href=\"" + termURL + "\">" + tsVO.getTerm().getCaption() + "</a>."; DilmajUserServiceImpl.sendMail(tsOwner, message); // live log // message=newComment.getUser()+" left a comment on "+tsOwner+"'s suggestion // "+tsVO.getSuggestion().getCaption()+" for the term "+tsVO.getTerm().getCaption()+"."; MessageComposite messageVO = new MessageComposite(message); // messageVO.setDateTime(new Date()); SessionServiceImpl.addMessage(messageVO); return newLike; }
@Override public UseCaseComposite create(UseCaseComposite newUseCase) { String username = (String) getThreadLocalRequest().getSession().getAttribute("loggedUser"); if (username == null) return null; if (username.equals("")) return null; newUseCase.setUser(username); Interaction useCase = new Interaction(newUseCase); java.util.Date today = new java.util.Date(); useCase.setTimestamp(today); TermSuggestionComposite tsVO = newUseCase.getTermSuggestion(); useCase.setTermSuggestionID(tsVO.getId()); PersistenceManager pm = PMF.get().getPersistenceManager(); try { pm.makePersistent(useCase); String query = "select from " + TermSuggestion.class.getName() + " where id==" + tsVO.getId(); List<TermSuggestion> allTermSuggestions = (List<TermSuggestion>) pm.newQuery(query).execute(); if (allTermSuggestions == null) return null; if (allTermSuggestions.size() != 1) return null; TermSuggestion ts = allTermSuggestions.get(0); ts.addInteractionID(useCase.getId()); newUseCase.setId(useCase.getId()); newUseCase.setTimestamp(useCase.getTimestamp()); pm.makePersistent(ts); // tsVO.a } finally { pm.close(); } String fullURL = getThreadLocalRequest().getRequestURL().toString(); String request = getThreadLocalRequest().getRequestURI(); int index = fullURL.indexOf(request); String baseURL = fullURL.substring(0, index); String termURL = baseURL + "?termId=" + tsVO.getTerm().getId(); String suggestionURL = baseURL + "?termSuggestionId=" + tsVO.getId(); // sending notification email String tsOwner = tsVO.getSuggestion().getUser(); String message = newUseCase.getUser() + " added a use case to your suggestion <a href=\"" + suggestionURL + "\">" + tsVO.getSuggestion().getCaption() + "</a> for the term <a href=\"" + termURL + "\">" + tsVO.getTerm().getCaption() + "</a>."; DilmajUserServiceImpl.sendMail(tsOwner, message); // live log // message=newComment.getUser()+" left a comment on "+tsOwner+"'s suggestion // "+tsVO.getSuggestion().getCaption()+" for the term "+tsVO.getTerm().getCaption()+"."; MessageComposite messageVO = new MessageComposite(message); // messageVO.setDateTime(new Date()); SessionServiceImpl.addMessage(messageVO); return newUseCase; }