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

import static org.apache.commons.lang3.StringUtils.isBlank;

import java.io.File;
import java.io.Serializable;

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import de.ivu.elect.business.konfiguration.entity.KonfigurationLoader;
import de.ivu.elect.business.konfiguration.entity.MandantKonfigurationWerte;
import de.ivu.elect.business.mandant.boundary.MandantDAO;
import de.ivu.elect.business.mandant.entity.AbstractMandant;
import de.ivu.elect.business.system.control.TempDir;

/**
 * ELECTMUC-1116
 */
@Stateless
public class StimmeingabeErgebnisuebernahmeStimmenEntferntLogFile implements Serializable {

  private static final long serialVersionUID = 1L;

  private static final Logger LOG = LoggerFactory.getLogger(StimmeingabeErgebnisuebernahmeStimmenEntferntLogFile.class);

  @Inject
  private transient KonfigurationLoader konfigurationLoader;

  @Inject
  private transient MandantDAO mandantDAO;

  @Inject
  private transient TempDir tempDir;

  public StimmeingabeErgebnisuebernahmeStimmenEntferntLogFile() {
    super();
  }

  @Nonnull
  public String getFilePathName(boolean createDir) {
    String ablageverzeichnisKonfiguriert = konfigurationLoader.resolveStringValue(AbstractMandant.getCustomerMandant(mandantDAO), MandantKonfigurationWerte.STIMMEINGABE_ABLAGEVERZEICHNIS);

    if (isBlank(ablageverzeichnisKonfiguriert)) {
      if (createDir) {
        LOG.warn("Kein Stimmablageverzeichnis konfiguriert, verwendet TEMP-Directory!!!");
      }

      ablageverzeichnisKonfiguriert = tempDir.getTempDir().getAbsolutePath();
    }

    String dir = ablageverzeichnisKonfiguriert + File.separator;

    if (createDir) {
      new File(dir).mkdirs();
    }

    return dir + File.separator + "entfernte-stimmen.csv";
  }
}
