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

namespace Kufer\KuferTools\Utils\DozBewerbung;

class DozBewerbungInserter
{
  public function doInsert($dozBewerbung)
  {
    if (\SessionOperations::isDmzBetrieb()) {
      $success = $this->insertInDmz($dozBewerbung);
      if ($success) {
        $this->insertInWebDb($dozBewerbung);

        return true; 
      }

      return false;
    } elseif (!\SessionOperations::isReplikat()) {
      return $this->insertInWebDb($dozBewerbung);
    }

    return false; 
  }

  private function insertInDmz($dozBewerbung)
  {
    $abgleichAPI = new \AbgleichAPI();

    if (!$abgleichAPI->isAktiviert()) {
      return 'nichtAktiviert';
    }


    $message = new \XMLNode('dozbewerbungen');
    $dozBewerbungNode = \XMLNode::getXMLNode($dozBewerbung, 'dozbewerbung', array('id'));

    $message->addChild($dozBewerbungNode);

    try {
      $abgleichAPI->sendeNachricht(\AbgleichAPI::ABGLEICH_DOZBEWERBUNG, new \Nutzlast($message));
    } catch (\Exception $e) {
      return false;
    }

    return true;
  }

  private function insertInWebDb($dozBewerbung)
  {
    $dbwDozBewerbung = new \DBWorkDozentenBewerbung(1, true);

    return $dbwDozBewerbung->insertBewerbung($dozBewerbung);
  }
}