/**
  * Get list data. Process filters if submitted.
  *
  * @param Form $filter
  * @return \RunOpenCode\ExchangeRate\Contract\RateInterface[]
  */
 protected function getListData(Form $filter)
 {
     if ($filter->isSubmitted() && $filter->isValid()) {
         return $this->repository->all($filter->getData());
     }
     return $this->repository->all();
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function fetch($sourceName = null, \DateTime $date = null)
 {
     $rates = array();
     $sourceNames = $sourceName === null ? array_map(function (SourceInterface $source) {
         return $source->getName();
     }, $this->sources->all()) : (array) $sourceName;
     foreach ($sourceNames as $sourceName) {
         $source = $this->sources->get($sourceName);
         $configurations = $this->configurations->all(array('sourceName' => $sourceName));
         /**
          * @var Configuration $configuration
          */
         foreach ($configurations as $configuration) {
             $rates[] = $source->fetch($configuration->getCurrencyCode(), $configuration->getRateType(), $date);
         }
     }
     /**
      * @var ProcessorInterface $processor
      */
     foreach ($this->processors->all() as $processor) {
         $rates = $processor->process($this->baseCurrency, $this->configurations, $rates);
     }
     $this->repository->save($rates);
     return $rates;
 }
 /**
  * Display repository.
  *
  * @param OutputStyle $outputStyle Console output style.
  * @return ConfigurationDebugCommand $this
  */
 protected function displayRepository(OutputStyle $outputStyle)
 {
     $outputStyle->section('Repository:');
     $outputStyle->writeln(' -> ' . sprintf('%s with %s record(s).', get_class($this->repository), $this->repository->count()));
     return $this;
 }