<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */

namespace Kufer\KuferTools\Mitarbeiter\TeilnehmerInfo;

class ControllerFactory
{
  public function getController($pAction)
  {
    switch ($pAction) {
      default:
      case 'teilnehmeruebersicht':
        return new TeilnehmerUebersicht\TeilnehmerUebersichtController();
      case 'showFilterTeilnehmerUebersicht':
        return new TeilnehmerUebersicht\FilterTeilnehmerUebersicht\FilterTeilnehmerUebersichtController();
      case 'setFilterTeilnehmerUebersicht':
        return new TeilnehmerUebersicht\TeilnehmerUebersichtSetFilterController();
      case 'resetFilterTeilnehmerUebersicht':
        return new TeilnehmerUebersicht\TeilnehmerUebersichtResetFilterController();
      case 'teilnehmerdetails':
        return new TeilnehmerDetails\TeilnehmerDetailsController();
      case 'merkeTeilnehmerDetailsReiter':
        return new \Kufer\KuferTools\Basis\Kursdetails\DetailsReiter\MerkeReiter\MerkeReiterController(\ToolsAPI::TOOL_TEILNEHMERINFO_MA, 411);
      case 'reiterTeilnehmerDetails':
        return new Detailsreiter\TeilnehmerDetails\TeilnehmerDetailsController();
      case 'reiterBelegteKurse':
        return new Detailsreiter\BelegteKurse\BelegteKurseController();
      case 'resetFilterBelegteKurse':
        return new Detailsreiter\BelegteKurse\BelegteKurseResetFilterController();
      case 'setFilterBelegteKurse':
        return new Detailsreiter\BelegteKurse\BelegteKurseSetFilterController();
      case 'showFilterBelegteKurse':
        return new Detailsreiter\BelegteKurse\BelegteKurseFilter\BelegteKurseFilterController();
      case 'abmeldenDialog':
        return new Detailsreiter\BelegteKurse\AbmeldenDialog\AbmeldenDialogController();
      case 'handleAbmedlung':
        return new Detailsreiter\BelegteKurse\HandleAbmeldung\HandleAbmeldungController();
      case 'reiterQualifikationen':
        return new Detailsreiter\Qualifikationen\QualifikationenController();
      case 'reiterBankverbindungen':
        return new Detailsreiter\Bankverbindungen\BankverbindungenController();
      case 'bankdetailsDialog':
        return new Detailsreiter\Bankverbindungen\BankdetailsDialog\BankdetailsDialogController();
      case 'getBankdaten':
        return new Detailsreiter\Bankverbindungen\Bankdaten\BankdatenController();
      case 'handleAktualisiereStammBv':
        return new Detailsreiter\Bankverbindungen\HandleAktualisiereStammBv\HandleAktualisiereStammBvController();
      
      
      case 'newTeilnehmer':
        return new NewTeilnehmer\NewTeilnehmerController();
      
      
      case 'handleTnInsert':
        return new NewTeilnehmer\HandleTeilnehmerInsert\HandleTeilnehmerInsertController();

      case 'updateTeilnehmer':
        return new UpdateTeilnehmer\UpdateTeilnehmerController();
      case 'handleTnUpdate':
        return new UpdateTeilnehmer\HandleTeilnehmerUpdate\HandleTeilnehmerUpdateController();
      case 'validate':
        return new \Kufer\KuferTools\Basis\ValidateBankData\ValidateBankDataController(\ToolsAPI::TOOL_TEILNEHMERINFO_MA, 42);
      case 'bankdatenAnhandIban':
        return new \Kufer\KuferTools\Allgemein\PersoenlicheDaten\BankdatenAnhandIban\BankdatenAnhandIbanController();

      case 'tnSammelEMail':
        return new SammelEMail\SammelEMailController();
      case 'tnSendSammelEMail':
        return new SammelEMail\SendSammelEMailController();
    }
  }
}