/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.evasion.client.controler;
import com.evasion.common.AbstractWebModule;
import com.evasion.common.Constante;
import com.evasion.common.Utils;
import com.evasion.common.flex.component.FlexComponent;
import com.evasion.ejb.local.*;
import com.evasion.ejb.remote.GeolocEJBRemote;
import com.evasion.entity.content.StaticPage;
import com.evasion.entity.booktravel.BookTravel;
import com.evasion.entity.booktravel.exception.BookTravelServiceException;
import com.evasion.exception.EvasionException;
import com.evasion.exception.PersistenceViolationException;
import com.evasion.module.common.ICommonModule;
import com.evasion.module.travel.ITravelModule;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author sebastien.glon
*/
@ManagedBean
@ApplicationScoped
public class ApplicationContext extends AbstractWebModule {
/**
* LOGGER.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationContext.class);
@EJB
private ParametreManagerLocal param;
@EJB
private StaticPageManagerLocal pageEjb;
@EJB
private ITravelModule bookEjb;
@EJB
private TemplateManagerLocal templateEJB;
@EJB
private GeolocEJBRemote geolocEJB;
@EJB
private ICommonModule commonModule;
private String externalURL;
@PostConstruct
public void initParam() {
try {
LOGGER.info("Initialisation du context applicatif");
commonModule.preLoad();
refreshParam();
initDefaultPage();
initEmailConfirmationAccount();
geolocEJB.updateImportTimer();
} catch (EvasionException ex) {
LOGGER.error("erreur d'initialisation de l'application.", ex);
}
}
public void refreshParam() {
super.refreshParam();
// Utilisé par le composant Flex pour connaitre l'URL depuis l'extérieur.
externalURL = param.getProperty(FlexComponent.EXTERNAL_URL);
}
/**
* Initialise la page statique par defaut.<br> La page est creee si le
* parametre
* <code>DEFAULT_PAGE_ID</code> est vide ou null.<br> Cette page sera
* utilisé comme page d'accueil pour cette application.
*/
private void initDefaultPage() {
if (Utils.isEmpty(param.getProperty(Constante.DEFAULT_PAGE_ID))) {
try {
StaticPage page = new StaticPage("Page par defaut", "Page en cours de construction", "", null);
page = pageEjb.createPage(page, "admin");
param.saveParametre(Constante.DEFAULT_PAGE_ID, page.getId().toString(), Boolean.TRUE);
} catch (PersistenceViolationException ex) {
LOGGER.error("Erreur d'initialisation de la page par défaut", ex);
}
}
}
private void initEmailConfirmationAccount() {
if (Utils.isEmpty(param.getProperty("SEND_EMAIL_ACCOUNT_CREATION"))) {
templateEJB.saveEmailTemplate("SEND_EMAIL_ACCOUNT_CREATION", Locale.FRENCH, "Confirmation de création d'un compte utilisateur sur le site www.evasion-en-ligne.fr", "Bonjour ${account.username} \\n nous confirmons la création de votre compte utilisateurs\\n\\n cordialement,\\n l'équipe technique.");
param.saveParametre("SEND_EMAIL_ACCOUNT_CREATION", Boolean.TRUE.toString(), Boolean.TRUE);
}
}
public boolean ifAuthenticated(String value) {
return Utils.ifAuthenticated(Boolean.valueOf(value));
}
public String getExternalURL() {
return externalURL;
}
public Map<Long, String> newBookTravel() {
return bookEjb.lastBookTravel(5);
}
}