
org.jlot.mailing.service.TranslatorNotificationMailingServiceImpl Maven / Gradle / Ivy
package org.jlot.mailing.service;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import javax.inject.Inject;
import org.jlot.core.dto.UserDTO;
import org.jlot.core.service.api.LocalizationPermissionService;
import org.jlot.core.service.api.LocalizationService;
import org.jlot.core.service.api.ProjectPermissionService;
import org.jlot.mailing.DTO.PushNotificationSupportDTO;
import org.jlot.mailing.sender.TranslatorNotificationMailSender;
import org.springframework.stereotype.Service;
@Service
public class TranslatorNotificationMailingServiceImpl implements TranslatorNotificationMailingService
{
@Inject
private TranslatorNotificationMailSender translatorNotificationMailSender;
@Inject
private ProjectPermissionService projectPermissionService;
@Inject
private LocalizationPermissionService localizationPermissionService;
@Inject
private LocalizationService localizationService;
private static final String DAILYCHECK = "dailycheck";
private static final String PUSH = "push";
@Override
public void executeNotificationJob ( String projectName, UserDTO translatorDTO )
{
Set setDeveloperDTOs = projectPermissionService.getUser(projectName);
translatorNotificationMailSender.sendMail(translatorDTO, projectName, setDeveloperDTOs, DAILYCHECK);
}
@Override
public void executePushNotificationJob ( String projectName, PushNotificationSupportDTO pushNotificationSupportDTO )
{
Set setDevelopers = projectPermissionService.getUser(projectName);
Map mapBefore = pushNotificationSupportDTO.getIsTranslationDoneBeforePush();
Map mapAfter = pushNotificationSupportDTO.getIsTranslationDoneAfterPush();
for (Locale locale : mapBefore.keySet())
{
if (mapBefore.get(locale) == true)
{
if (mapAfter.get(locale) == false)
{
Set setTranslators = localizationPermissionService.getUser(localizationService.getLocalization(projectName, locale).getId());
for (UserDTO userDTO : setTranslators)
{
if (setDevelopers.contains(userDTO) == false)
{
translatorNotificationMailSender.sendMail(userDTO, projectName, setDevelopers, PUSH);
}
}
}
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy