/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.evasion.client.controler;
import com.evasion.common.Constante;
import com.evasion.common.controler.Person;
import com.evasion.common.controler.User;
import com.evasion.exception.PersistenceViolationException;
import com.evasion.ejb.local.AccountManagerLocal;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
/**
*
* @author sebastien.glon
*/
@ManagedBean
@RequestScoped
public class Account extends Person {
/***
* serialVersionUID.
*/
private static final long serialVersionUID = 1L;
@EJB
private AccountManagerLocal accountMan;
private User user;
private Person person;
@PostConstruct
public void init() {
person = new Person();
user = new User();
}
public String valid() {
com.evasion.entity.Account account = null;
try {
user.validUser();
person.validPerson();
account = new com.evasion.entity.Account(user.getUserEntity(), person.getPersonEntity());
accountMan.createAccount(account);
} catch (PersistenceViolationException ex) {
FacesContext facesContext = FacesContext.getCurrentInstance();
facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Ce nom d'utilisateur est déjà utilisé par une autre personne", ""));
} catch (EJBException ex) {
Logger.getLogger(Account.class.getName()).log(Level.SEVERE, null, ex);
}
if (account == null || account.getId() == null) {
return Constante.FAIL_ACTION;
} else {
return "confirmationAccount.xhtml";
}
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}