All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jlot.mailing.service.TranslatorNotificationMailingServiceImpl Maven / Gradle / Ivy

There is a newer version: 1.2
Show newest version
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