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

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

import de.ivu.elect.business.mandant.boundary.MandantDAO;
import de.ivu.elect.business.mandant.entity.Mandant;
import de.ivu.elect.business.wahl.boundary.WahlDAO;
import de.ivu.elect.business.wahl.boundary.WahlterminDAO;
import de.ivu.elect.jee.startup.PostStartup;

/**
 *  on 20.02.2017.
 */
@Stateless
public class WahlParameterCreatorPostStartup implements PostStartup {

  @Inject
  private transient WahlterminDAO wahlterminDAO;

  @Inject
  private transient WahlDAO wahlDAO;

  @Inject
  private transient WahlOderWahlterminSystem wahlOderWahlterminSystem;

  @Inject
  private transient WahlParameterCreator wahlParameterCreator;

  @Inject
  private transient MandantDAO mandantDAO;

  public WahlParameterCreatorPostStartup() {
    super();
  }

  @Override
  public void postStartup() {
    for (Mandant mandant : mandantDAO.findByAll()) {
      if (mandant.getArt().isCustomerMandant()) {
        if (wahlOderWahlterminSystem.isWahlterminSystem()) {
          wahlterminDAO.findByAll(mandant).forEach(wahlParameterCreator::initWahlterminParameters);
        }

        if (wahlOderWahlterminSystem.isWahlSystem()) {
          wahlDAO.findByAll(mandant).forEach(wahlParameterCreator::initWahlParameters);
        }
      }
    }
  }
}
