RoundsController::getCourseNameAndCountry()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 1
dl 0
loc 11
rs 9.9
c 0
b 0
f 0
1
<?php
2
namespace TNM\GolfCourses\Controller;
3
4
/***************************************************************
5
 *  Copyright notice
6
 *
7
 *  (c) 2016 Tomas Norre Mikkelsen <[email protected]>
8
 *
9
 *  All rights reserved
10
 *
11
 *  This script is part of the TYPO3 project. The TYPO3 project is
12
 *  free software; you can redistribute it and/or modify
13
 *  it under the terms of the GNU General Public License as published by
14
 *  the Free Software Foundation; either version 3 of the License, or
15
 *  (at your option) any later version.
16
 *
17
 *  The GNU General Public License can be found at
18
 *  http://www.gnu.org/copyleft/gpl.html.
19
 *
20
 *  This script is distributed in the hope that it will be useful,
21
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
22
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23
 *  GNU General Public License for more details.
24
 *
25
 *  This copyright notice MUST APPEAR in all copies of the script!
26
 ***************************************************************/
27
28
use SJBR\StaticInfoTables\Domain\Model\Country;
29
use TNM\GolfCourses\Domain\Model\GolfCourse;
30
use TNM\GolfCourses\Domain\Model\GolfRound;
31
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
32
33
/**
34
 * Class BestScoreController
35
 *
36
 */
37
class RoundsController extends ActionController
38
{
39
40
    /**
41
     * @var \TNM\GolfCourses\Domain\Repository\GolfRoundRepository
42
     * @TYPO3\CMS\Extbase\Annotation\Inject
43
     */
44
    protected $golfRoundRepository;
45
46
    /**
47
     * @var \TNM\GolfCourses\Domain\Repository\GolfCourseRepository
48
     * @TYPO3\CMS\Extbase\Annotation\Inject
49
     */
50
    protected $golfCourseRepository;
51
52
    /**
53
     * @var \SJBR\StaticInfoTables\Domain\Repository\CountryRepository
54
     * @TYPO3\CMS\Extbase\Annotation\Inject
55
     */
56
    protected $countryRepository;
57
58
    /**
59
     * @return void
60
     */
61
    public function listAction()
62
    {
63
        $rounds = [];
64
        $golfRounds = $this->golfRoundRepository->findAll();
65
66
        /** @var GolfRound $golfRound */
67
        foreach ($golfRounds as $golfRound) {
68
            $rounds[] = [
69
                'date' => $golfRound->getDate(),
70
                'regulation' => $golfRound->isRegulation(),
71
                'course' => $this->getCourseNameAndCountry($golfRound->getCourse()),
72
                'par' => $golfRound->getPar(),
73
                'strokes' => $golfRound->getStrokes(),
74
                'score' => $golfRound->getScore(),
75
            ];
76
        }
77
        $this->view->assign('rounds', $rounds);
78
    }
79
80
    /**
81
     * @param $uid
82
     *
83
     * @return string
84
     */
85
    private function getCourseNameAndCountry($uid)
86
    {
87
        /** @var GolfCourse $golfCourse */
88
        $golfCourse = $this->golfCourseRepository->findByUid($uid);
89
90
        /** @var Country $country */
91
        $country = $this->countryRepository->findByUid($golfCourse->getCountry());
92
        $countryName = $country->getIsoCodeA2();
93
94
        return $golfCourse->getName() . ' (' . $countryName . ')';
95
    }
96
}
97