/** * 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(); }
/** * {@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; }