package de.ivu.elect.business.system.control;

import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.inject.Inject;

import de.ivu.elect.business.wahl.boundary.WahlDAO;
import de.ivu.elect.business.wahl.boundary.WahlterminDAO;
import de.ivu.elect.business.wahl.entity.WahlOderWahlterminPK;
import de.ivu.elect.business.wahl.entity.WahlPK;
import de.ivu.elect.business.wahl.entity.WahlterminPK;

@Stateless
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public class WahlWahlterminVorhanden {

  @Inject
  private transient WahlDAO wahlDAO;

  @Inject
  private transient WahlterminDAO wahlterminDAO;

  public boolean isVorhanden(WahlOderWahlterminPK wahlOderWahlterminPK) {
    if (wahlOderWahlterminPK == null) {
      return false;
    }
    if (wahlOderWahlterminPK.isWahlPK()) {
      return isVorhanden(wahlOderWahlterminPK.getWahlPK());
    }
    return isVorhanden(wahlOderWahlterminPK.getWahlterminPK());
  }

  public boolean isVorhanden(WahlPK wahlPK) {
    if (wahlPK == null) {
      return false;
    }

    try {
      return wahlDAO.refresh(wahlDAO.findByPrimaryKey(wahlPK)).getWahltermin() != null; // Test, ob vorhanden
    } catch (Exception e) {
      return false;
    }
  }

  public boolean isVorhanden(WahlterminPK wahlterminPK) {
    if (wahlterminPK == null) {
      return false;
    }
    try {
      return wahlterminDAO.refresh(wahlterminDAO.findByPrimaryKey(wahlterminPK)).getMandant() != null; // Test, ob vorhanden
    } catch (Exception e) {
      return false;
    }
  }

}
