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

import javax.enterprise.inject.Specializes;

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

import de.ivu.elect.business.ergebnis.control.ZwischenergebnisberechnungBackgroundService;
import de.ivu.elect.business.stimmeingabe.control.sequenznummer.ErgebnissequenznummerSetzenBackgroundService;

@Specializes
public class NlWasSpecialBackgroundServiceRunning extends NlSpecialBackgroundServiceRunning {
  private static final long serialVersionUID = 1L;

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

  @Override
  public boolean isSomethingRunning() {
    boolean somethingRunning = super.isSomethingRunning();
    boolean zwischenergebnisberechnungBackgroundServiceRunning = ZwischenergebnisberechnungBackgroundService.isServiceRunning();
    boolean ergebnissequenznummerSetzenBackgroundServiceRunning = ErgebnissequenznummerSetzenBackgroundService.isServiceRunning();
    boolean result = somethingRunning || zwischenergebnisberechnungBackgroundServiceRunning || ergebnissequenznummerSetzenBackgroundServiceRunning;
    if (result) {
      LOG.info(
          "somethingRunning: " + somethingRunning + ", zwischenergebnisberechnungBackgroundServiceRunning: " + zwischenergebnisberechnungBackgroundServiceRunning + ", ergebnissequenznummerSetzenBackgroundServiceRunning:" + ergebnissequenznummerSetzenBackgroundServiceRunning);
    }
    return result;
  }
}
