use DataAccess\StepMania\ISimfileRepository;\r
use DataAccess\StepMania\IPackRepository;\r
use DataAccess\IFileRepository;\r
+use Domain\Entities\StepMania\ISimfile;\r
+use Domain\Entities\StepMania\IPack;\r
\r
class SimfileController implements IDivineController\r
{\r
$zipParser->parse($file);\r
\r
//save the actual zip in the db\r
- //$this->_fileRepository->save($file); \r
- foreach($zipParser->simfiles() as $simfile)\r
- {\r
- $this->_fileRepository->save($simfile->getBanner());\r
- $this->_fileRepository->save($simfile->getSimfile());\r
- $this->_simfileRepository->save($simfile);\r
- }\r
+ $this->_fileRepository->save($file); \r
\r
if($zipParser->isPack())\r
{\r
+ //XXX: Tricky! pack() uses packbuilder and so returns a new pack each time.\r
+ //I tried to be clever and call pack() multiple times thinking I was getting the same\r
+ //object. Should I cache it in zipparser?\r
$pack = $zipParser->pack();\r
$this->_fileRepository->save($pack->getBanner());\r
$this->_packRepository->save($pack);\r
}\r
+ \r
+ foreach($zipParser->simfiles() as $simfile)\r
+ { \r
+ $banner = $simfile->getBanner() ? $this->_fileRepository->save($simfile->getBanner()) : null;\r
+ $simfileZip = $simfile->getSimfile() ? $this->_fileRepository->save($simfile->getSimfile()) : null;\r
+\r
+ if(isset($pack)) $simfile->addToPack($pack);\r
+ $this->_simfileRepository->save($simfile);\r
+ }\r
}\r
}\r
}\r