automationRunStorage = $automationRunStorage; $this->automationRunLogStorage = $automationRunLogStorage; } public function getWaitingStatistics(Automation $automation, Query $query): array { $rawData = $this->automationRunStorage->getAutomationStepStatisticForTimeFrame( $automation->getId(), AutomationRun::STATUS_RUNNING, $query->getAfter(), $query->getBefore() ); $data = []; foreach ($automation->getSteps() as $step) { foreach ($rawData as $rawDatum) { if ($rawDatum['next_step_id'] === $step->getId()) { $data[$step->getId()] = (int)$rawDatum['count']; } } } return $data; } public function getFailedStatistics(Automation $automation, Query $query): array { $rawData = $this->automationRunStorage->getAutomationStepStatisticForTimeFrame( $automation->getId(), AutomationRun::STATUS_FAILED, $query->getAfter(), $query->getBefore() ); $data = []; foreach ($automation->getSteps() as $step) { foreach ($rawData as $rawDatum) { if ($rawDatum['next_step_id'] === $step->getId()) { $data[$step->getId()] = (int)$rawDatum['count']; } } } return $data; } public function getCompletedStatistics(Automation $automation, Query $query): array { $statistics = $this->automationRunLogStorage->getAutomationRunStatisticsForAutomationInTimeFrame( $automation->getId(), AutomationRunLog::STATUS_COMPLETE, $query->getAfter(), $query->getBefore() ); $data = []; foreach ($automation->getSteps() as $step) { if ($step->getType() === Step::TYPE_ROOT) { continue; } $data[$step->getId()] = 0; foreach ($statistics as $stat) { if ($stat['step_id'] === $step->getId()) { $data[$step->getId()] = (int)$stat['count']; } } } return $data; } }