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

import java.util.Collections;

import de.ivu.elect.business.veranstaltung.entity.Teilnahme;

public class TeilnahmePersonendatenByInstanzFinder implements TeilnahmePersonendatenFinder {

  private final TeilnahmeExchangeContext context;

  private final TeilnahmeImportAttacher teilnahmeImportAttacher;

  public TeilnahmePersonendatenByInstanzFinder(TeilnahmeExchangeContext context, TeilnahmeImportAttacher teilnahmeImportAttacher) {
    super();

    this.context = context;

    this.teilnahmeImportAttacher = teilnahmeImportAttacher;
  }

  @Override
  public ValidateResult validatePersonendatenInDb(Teilnahme teilnahmeInDatei) {
    if (teilnahmeImportAttacher.isTeilnahmeEingelesen(teilnahmeInDatei, context)) {
      return new ValidateResult(1L);
    }

    return new ValidateResult(0L);
  }

  @Override
  public FindResult findPersonendatenInDb(Teilnahme teilnahmeInDatei) {
    if (teilnahmeImportAttacher.isTeilnehmerPersistiert(teilnahmeInDatei, context)) {
      return new FindResult(Collections.singleton(teilnahmeImportAttacher.attachTeilnehmer(teilnahmeInDatei, context)));
    }

    return new FindResult(Collections.emptySet());
  }
}
