Projekt

Obecné

Profil

Stáhnout (2.02 KB) Statistiky
| Větev: | Tag: | Revize:
1
<?php
2

    
3
namespace App\AdminModule\Presenters;
4

    
5
use App\AdminModule\Components\IExportFormFactory;
6
use App\AdminModule\Components\IImportFormFactory;
7
use App\Model\Repository\ObjectTypeRepository;
8
use App\Model\Repository\SurfaceTypeRepository;
9
use App\Utils\TextParser;
10

    
11
class TransportPresenter extends BaseUserPresenter
12
{
13
    /** @var IImportFormFactory  */
14
    private $importFormFactory;
15

    
16
    /** @var IExportFormFactory  */
17
    private $exportFormFactory;
18

    
19
    /** @var SurfaceTypeRepository */
20
    private $surfaceTypeRepository;
21

    
22
    /** @var ObjectTypeRepository */
23
    private $objectTypeRepository;
24

    
25
    public function __construct(
26
        IImportFormFactory $importFormFactory,
27
        IExportFormFactory $exportFormFactory,
28
        SurfaceTypeRepository $surfaceTypeRepository,
29
        ObjectTypeRepository $objectTypeRepository
30
    )
31
    {
32
        parent::__construct();
33
        $this->importFormFactory = $importFormFactory;
34
        $this->exportFormFactory = $exportFormFactory;
35
        $this->surfaceTypeRepository = $surfaceTypeRepository;
36
        $this->objectTypeRepository = $objectTypeRepository;
37
    }
38

    
39
    public function actionPreviewImport(TextParser $parser){
40
        $objectTypes = $this->objectTypeRepository->fetchObjectTypes();
41
        $surfaceTypes = $this->surfaceTypeRepository->fetchSurfaceTypes();
42
        $parser->setTypes($objectTypes, $surfaceTypes);
43

    
44
        $this->template->fileName = $parser->textFile->getName();
45
        $this->template->parsedFile = $parser->parseText();
46
        $this->template->transliterationNum = $this->countTransliterations();
47
        $this->template->surfaces = $surfaceTypes;
48
    }
49

    
50
    public function countTransliterations(){
51
        $num=0;
52
        foreach ($this->template->parsedFile as $book){
53
            $num += count($book);
54
        }
55
        return $num;
56
    }
57

    
58
    public function createComponentImportForm()
59
    {
60
        return $this->importFormFactory->create();
61
    }
62

    
63
    public function createComponentExportForm()
64
    {
65
        return $this->exportFormFactory->create();
66
    }
67
}
(11-11/12)