
package de.ivu.elect.business.wahlbeteiligung.boundary;

import de.ivu.elect.business.ergebnis.entity.Ergebnis;
import de.ivu.elect.business.gebietsbaum.entity.Wahldurchfuehrungsgebiet;
import de.ivu.elect.business.replikation.boundary.ReplikationErzeugen;
import de.ivu.elect.business.wahlbeteiligung.control.WahlbeteiligungAktualisierer;
import de.ivu.elect.business.wahlbeteiligung.entity.Wahlbeteiligung;
import de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungAuswertung;

import javax.ejb.Stateless;
import javax.inject.Inject;
import java.util.Map;

@Stateless
public class WahlbeteiligungEdit extends AbstractWahlbeteiligungEdit {

  @Inject
  private transient ReplikationErzeugen replikationErzeugen;

  @Inject
  private transient WahlbeteiligungAktualisierer wahlbeteiligungAktualisierer;

  public void saveErfassungenFuerGebiet(String erfasser, Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet,
                                        Map<WahlbeteiligungAuswertung, Wahlbeteiligung> wahlbeteiligungProAuswertung,
                                        Ergebnis ergebnis) {

    if (replikationErzeugen.isReplikationNotwendig()) {
      replikationErzeugen.replikationWahlbeteiligungErfassung(wahldurchfuehrungsgebiet, wahlbeteiligungProAuswertung);
    }

    wahlbeteiligungAktualisierer.aktualisiereWahlbeteiligungen(erfasser, wahldurchfuehrungsgebiet,
            wahlbeteiligungProAuswertung, ergebnis);
  }
}
