/**
  * @param SearchTracksCommandResult $searchTracksCommandResult
  *
  * @return TrackResource[]
  */
 public function transform(SearchTracksCommandResult $searchTracksCommandResult)
 {
     $trackResources = [];
     foreach ($searchTracksCommandResult->tracks() as $track) {
         $trackResources[] = $this->trackToTrackResourceDataTransformer->transform($track);
     }
     return $trackResources;
 }
 /**
  * @param Command|SearchTracksCommand $command
  *
  * @return mixed
  * @throws TrackNotFoundException
  */
 public function handle(Command $command)
 {
     $from = ($command->page() - 1) * TrackRepository::SIZE;
     $tracks = $this->trackRepository->findByCriteria(TrackRepositoryCriteria::instance($command->albumId(), $command->albumTitle(), $command->trackName(), $command->composer(), $command->page(), ['id' => 'asc'], TrackRepository::SIZE, $from));
     return $this->searchTracksCommandResultDataTransformer->transform(SearchTracksCommandResult::instance($tracks));
 }