package org.mobicents.ipbx.session;
import java.util.HashSet;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.Transactional;
import org.mobicents.ipbx.entity.Contact;
import org.mobicents.ipbx.entity.User;
@Name("contactAction")
@Scope(ScopeType.EVENT)
@Transactional
public class ContactAction {
@In(required=false) User user;
@In EntityManager entityManager;
@In DataLoader dataLoader;
private String contactUri;
public void addContact() {
if(user == null) return;
try {
User u = entityManager.find(User.class, user.getId());
Contact contact = new Contact();
contact.setUri(contactUri);
contact.setUser(u);
if(u.getContacts() == null) {
u.setContacts(new HashSet<Contact>());
}
u.getContacts().add(contact);
entityManager.persist(contact);
//user = entityManager.merge(u);
entityManager.flush();
dataLoader.refreshContacts();
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage("Added new contact."));
} catch (Exception e) {
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage("Error. " +e.getMessage()));
}
}
public void remove(Contact contact) {
try {
entityManager.remove(contact);
} catch (Exception e) {}
//reg.setSelected(!reg.isSelected());
}
public String getContactUri() {
return contactUri;
}
public void setContactUri(String contactUri) {
this.contactUri = contactUri;
}
}