public int countPendingRecipients() { return emailAddresseeDao.countPending(); }
@Bean public EmailAddresseeDao<?> emailAddresseeDao() { return new EmailAddresseeDao<>(); }
@Bean public EmailDao<?> emailDao() { return new EmailDao<>(); }
@Transactional(Transactional.TxType.REQUIRES_NEW) public void markAsSent(Email.Addressee addressee) { EmailAddresseeEntity entity = emailAddresseeDao.findOrException(addressee.getCod()); entity.setSentDate(new Date()); emailAddresseeDao.saveOrUpdate(entity); addressee.setSentDate(entity.getSentDate()); }
@Override public boolean send(Email email) { EmailEntity emailEntity = new EmailEntity(); if (!validateRecipients(email.getAllRecipients())) { throw new SingularMailException("O destinatário de e-mail é inválido."); } emailEntity.setSubject(email.getSubject()); emailEntity.setContent(email.getContent()); emailEntity.setReplyTo(email.getReplyToJoining()); String emailIdentifier = Optional.ofNullable(email.getModuleCod()) .orElse(SingularProperties.get().getPropertyOpt(EMAIL_COD_MODULE).orElse(null)); emailEntity.setModule(emailIdentifier); for (IAttachmentRef attachmentRef : email.getAttachments()) { IAttachmentRef attachment = persistenceHandler.copy(attachmentRef, null).getNewAttachmentRef(); emailEntity.getAttachments().add(persistenceHandler.getAttachmentEntity(attachment)); } emailEntity.setCreationDate(new Date()); emailDao.save(emailEntity); for (Email.Addressee addressee : email.getAllRecipients()) { EmailAddresseeEntity addresseeEntity = new EmailAddresseeEntity(); addresseeEntity.setAddress(addressee.getAddress()); addresseeEntity.setAddresseType(addressee.getType()); addresseeEntity.setEmail(emailEntity); emailAddresseeDao.save(addresseeEntity); } return true; }
public int countPending() { Criteria c = getSession().createCriteria(entityClass); c.add(Restrictions.isNull("sentDate")); c.setProjection(Projections.rowCount()); return Optional.ofNullable((Number)c.uniqueResult()).map(Number::intValue).orElse(0); }
public List<Email.Addressee> listPendingRecipients(int firstResult, int maxResults, @Nullable String codModule) { return emailAddresseeDao.listPending(firstResult, maxResults) .stream() .filter(s -> codModule == null || codModule.equals(s.getEmail().getModule())) .map(addressee -> { Email email = new Email(); email.withSubject(addressee.getEmail().getSubject()); email.withContent(addressee.getEmail().getContent()); email.addReplyTo(addressee.getEmail().getReplyTo()); email.setCreationDate(addressee.getEmail().getCreationDate()); for (AttachmentEntity attachmentEntity : addressee.getEmail().getAttachments()) { email.addAttachments(persistenceHandler.createRef(attachmentEntity)); } return new Email.Addressee(email, addressee); }).collect(Collectors.toList()); } }
@Bean public EmailAddresseeDao emailAddresseeDao() { return new EmailAddresseeDao(); }
@Bean public EmailDao<?> emailDao() { return new EmailDao<>(); }
@Transactional(Transactional.TxType.REQUIRES_NEW) public void markAsSent(Email.Addressee addressee){ EmailAddresseeEntity entity = emailAddresseeDao.findOrException(addressee.getCod()); entity.setSentDate(new Date()); emailAddresseeDao.saveOrUpdate(entity); addressee.setSentDate(entity.getSentDate()); }
@Override public boolean send(Email email) { EmailEntity emailEntity = new EmailEntity(); if (!validateRecipients(email.getAllRecipients())) { throw new SingularMailException("O destinatário de e-mail é inválido."); } emailEntity.setSubject(email.getSubject()); emailEntity.setContent(email.getContent()); emailEntity.setReplyTo(email.getReplyToJoining()); for (IAttachmentRef attachmentRef : email.getAttachments()) { IAttachmentRef attachment = persistenceHandler.copy(attachmentRef, null).getNewAttachmentRef(); emailEntity.getAttachments().add(persistenceHandler.getAttachmentEntity(attachment)); } emailEntity.setCreationDate(new Date()); emailDao.save(emailEntity); for (Email.Addressee addressee : email.getAllRecipients()) { EmailAddresseeEntity addresseeEntity = new EmailAddresseeEntity(); addresseeEntity.setAddress(addressee.getAddress()); addresseeEntity.setAddresseType(addressee.getType()); addresseeEntity.setEmail(emailEntity); emailAddresseeDao.save(addresseeEntity); } return true; }
public int countPending() { Criteria c = getSession().createCriteria(entityClass); c.add(Restrictions.isNull("sentDate")); c.setProjection(Projections.rowCount()); return Optional.ofNullable((Number)c.uniqueResult()).map(Number::intValue).orElse(0); }
public int countPendingRecipients() { return emailAddresseeDao.countPending(); }
public List<Email.Addressee> listPendingRecipients(int firstResult, int maxResults) { return emailAddresseeDao.listPending(firstResult, maxResults).stream().map(addressee -> { Email email = new Email(); email.withSubject(addressee.getEmail().getSubject()); email.withContent(addressee.getEmail().getContent()); email.addReplyTo(addressee.getEmail().getReplyTo()); email.setCreationDate(addressee.getEmail().getCreationDate()); for (AttachmentEntity attachmentEntity : addressee.getEmail().getAttachments()) { email.addAttachments(persistenceHandler.createRef(attachmentEntity)); } return new Email.Addressee(email, addressee); }).collect(Collectors.toList()); } }
@Bean public EmailAddresseeDao<?> emailAddresseeDao() { return new EmailAddresseeDao<>(); }
@Bean public EmailDao emailDao() { return new EmailDao(); }
public List<T> listPending(int firstResult, int maxResults){ Criteria c = getSession().createCriteria(entityClass); c.add(Restrictions.isNull("sentDate")); c.addOrder(Order.asc("cod")); c.setFirstResult(firstResult); c.setMaxResults(maxResults); return c.list(); } }
@Bean public EmailAddresseeDao<?> emailAddresseeDao() { return new EmailAddresseeDao<>(); }
@Bean public EmailDao<?> emailDao() { return new EmailDao<>(); }
public List<T> listPending(int firstResult, int maxResults){ Criteria c = getSession().createCriteria(entityClass); c.add(Restrictions.isNull("sentDate")); c.addOrder(Order.asc("cod")); c.setFirstResult(firstResult); c.setMaxResults(maxResults); return c.list(); } }