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

import de.ivu.elect.business.datei.entity.DateiImport;
import de.ivu.elect.business.kandidatur.control.WahlvorschlagImportContext;
import de.ivu.elect.business.wahl.boundary.WahlDAO;
import de.ivu.elect.business.wahl.entity.NlWahlCustomData;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahlvorschlag.entity.Wahlvorschlag;
import de.ivu.elect.jee.exchange.ImportOptions;

import javax.ejb.Stateless;
import javax.enterprise.inject.Specializes;
import javax.inject.Inject;
import java.util.List;


@Stateless
@Specializes
public class NLWasWahlvorschlagImporter extends WahlvorschlagImporter {

  private static final String Eml230Filename = "Eml230Filename";
  @Inject
  private WahlDAO wahlDAO;

  @Override
  protected void preImportActions(DateiImport dateiImport, WahlvorschlagImportContext context, ImportOptions importOptions) {
    super.preImportActions(dateiImport, context, importOptions);
    context.put(Eml230Filename, dateiImport.getDatei().getOriginalDateiname()); //ELECT-10358
  }

  @Override
  protected void importiere(WahlvorschlagImportContext context, ImportOptions importOptions, WahlvorschlagDateiImportBericht customDateiImportBericht, List<Wahlvorschlag> wahlvorschlags) {
    super.importiere(context, importOptions, customDateiImportBericht, wahlvorschlags);
    //ELECT-10358 die Wahl aus dem context nimmt nicht an der Transaktion teil
    Wahl wahl = wahlDAO.attach(context.getWahl());
    wahl.getCustomData(NlWahlCustomData.class).setEml230Date(context.getWahl().getCustomData(NlWahlCustomData.class).getEml230Date());
    wahl.getCustomData(NlWahlCustomData.class).setEml230Filename(context.getWahl().getCustomData(NlWahlCustomData.class).getEml230Filename());
    wahl.getCustomData(NlWahlCustomData.class).setEml230HashCode(context.getWahl().getCustomData(NlWahlCustomData.class).getEml230HashCode());
  }
}
