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

import de.ivu.elect.business.mandant.entity.Mandant;
import de.ivu.elect.business.personenregister.entity.PersonenregisterSource;
import de.ivu.elect.presentation.mandant.MandantSessionSelect;

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

public class PersonenregisterVerfuegbarkeitPruefer {

  @Inject
  private transient MandantSessionSelect mandantSessionSelect;

  @Inject
  private transient PersonenregisterSwitch personenregisterSwitch;

  public boolean isAvailable(@Nonnull PersonenregisterSource source) {
    Mandant mandant = mandantSessionSelect.getMandant();

    if (mandant == null) {
      return false;
    }

    if (!personenregisterSwitch.isPersonenregisterAvailable(mandant)) {
      return false;
    }

    PersonenregisterResolver personenregisterResolver =
        personenregisterSwitch.getPersonenregisterResolver(mandant);

    if (personenregisterResolver == null) {
      return false;
    }

    return source.equals(personenregisterResolver.getPersonenregisterSource());
  }
}
