@Override
@Transactional
public void addEmail(HttpServletRequest request, String orcid, Email email) {
SourceEntity sourceEntity = sourceManager.retrieveActiveSourceEntity();
String sourceId = sourceEntity.getSourceProfile() == null ? null : sourceEntity.getSourceProfile().getId();
String clientSourceId = sourceEntity.getSourceClient() == null ? null : sourceEntity.getSourceClient().getId();
Email currentPrimaryEmail = findPrimaryEmail(orcid);
emailDao.addEmail(orcid, email.getEmail(), encryptionManager.getEmailHash(email.getEmail()), email.getVisibility().name(), sourceId, clientSourceId);
if (email.isPrimary() && !StringUtils.equals(currentPrimaryEmail.getEmail(), email.getEmail())) {
request.getSession().setAttribute(EmailConstants.CHECK_EMAIL_VALIDATED, false);
notificationManager.sendEmailAddressChangedNotification(orcid, email.getEmail(), currentPrimaryEmail.getEmail());
}
notificationManager.sendVerificationEmail(orcid, email.getEmail());
}