
package de.ivu.elect.presentation.kandidatur.action;

import javax.enterprise.inject.Specializes;
import javax.inject.Inject;

import de.ivu.elect.business.ergebnis.boundary.ErgebnisBerechnenAusloesenEvent;
import de.ivu.elect.business.kandidatur.boundary.KandidaturExtendedDAO;
import de.ivu.elect.business.kandidatur.entity.Kandidatur;
import de.ivu.elect.business.wahl.entity.Wahl;

@Specializes
public class WasErgebnisRelevanteAenderungListener extends ErgebnisRelevanteAenderungListener {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient KandidaturExtendedDAO kandidaturExtendedDAO;

  @Inject
  private transient ErgebnisBerechnenAusloesenEvent ergebnisBerechnenAusloesenEvent;

  public WasErgebnisRelevanteAenderungListener() {
    super();
  }

  @Override
  public void aenderungAn(Kandidatur kandidatur, boolean gueltigeErgebniseingaengeErneutUebernehmen) {
    super.aenderungAn(kandidatur, gueltigeErgebniseingaengeErneutUebernehmen);

    // ELECTKOM-957
    if (kandidatur != null) {
      Wahl wahl = kandidaturExtendedDAO.attach(kandidatur).getWahl();

      ergebnisBerechnenAusloesenEvent.sendErgebnisBerechnenAusloesenEvent(wahl, gueltigeErgebniseingaengeErneutUebernehmen);
    }
  }
}
