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

namespace Kufer\KuferTools\Mitarbeiter\KursUebersicht\Detailsreiter\Teilnehmer\Mitveranstalter;

class SaveTeilnehmerController extends \Kufer\KuferTools\Basis\Controller\ToolController
{
  protected function getUseCase(): \Kufer\KuferTools\Basis\UseCase\UseCase
  {
    return new SaveTeilnehmerUseCase(
      $this->getRequestObj()
    );
  }

  protected function getPresenter($useCaseResponse)
  {
    return null; 
  }

  protected function getRequestObj()
  {
    $requestObj = new SaveTeilnehmerUseCaseRequest();
    $requestObj->knr = \GetOperations::getVarValue('knr');
    $requestObj->maennlichInnsbruckChange = \PostOperations::getVarValue('maennlich_innsbruck_change', 0);
    $requestObj->maennlichAuswaertsChange = \PostOperations::getVarValue('maennlich_auswaerts_change', 0);
    $requestObj->weiblichInnsbruckChange = \PostOperations::getVarValue('weiblich_innsbruck_change', 0);
    $requestObj->weiblichAuswaertsChange = \PostOperations::getVarValue('weiblich_auswaerts_change', 0);

    return $this->handleXsrf($requestObj, 'saveTnMitveranstalter', $requestObj->knr);
  }

  protected function getControllerToForward($pUseCaseResponse)
  {
    
    if ($pUseCaseResponse->success === true) {
      $message = array('process' => UPLOAD_OK, 'message' => 'Die Teilnehmerzahlen wurden erfolgreich geändert.');
    } elseif ($pUseCaseResponse->success === false) {
      $message = array('process' => UPLOAD_NOT_OK, 'message' => 'Beim Ändern der Teilnehmerzahlen ist ein Fehler aufgetreten. '
                                                            . 'Bitte überprüfen Sie die Teilnehmerzahlen und versuchen Sie es erneut.');
    } else {
      $message = array('process' => null);
    }
    $statusMessageContainer = new \Kufer\KuferTools\Utils\StatusMessages\StatusMessageContainer();
    $statusMessageContainer->addStatusMessageByOldObject($message);

    return new \Kufer\KuferTools\Mitarbeiter\KursUebersicht\KursDetails\KursDetailsExternController($statusMessageContainer);
  }
}