collectionProcessor = $collectionProcessor; $this->collectionFactory = $collectionFactory; $this->searchResultsFactory = $searchResultsFactory; $this->caseFactory = $caseFactory; $this->resourceModel = $resourceModel; } /** * @inheritdoc */ public function save(CaseInterface $case) { /** @var CaseEntity $case */ $this->resourceModel->save($case); return $case; } /** * @inheritdoc */ public function getById($id) { /** @var CaseEntity $case */ $case = $this->caseFactory->create(); $this->resourceModel->load($case, $id); return $case; } /** * @inheritdoc */ public function getByCaseId($caseId) { /** @var CaseEntity $case */ $case = $this->caseFactory->create(); $this->resourceModel->load($case, $caseId, 'case_id'); return $case->getEntityId() ? $case : null; } /** * @inheritdoc */ public function delete(CaseInterface $case) { $this->resourceModel->delete($case); return true; } /** * @inheritdoc */ public function getList(SearchCriteriaInterface $searchCriteria) { /** @var Collection $collection */ $collection = $this->collectionFactory->create(); $this->collectionProcessor->process($searchCriteria, $collection); /** @var CaseSearchResultsInterface $searchResults */ $searchResults = $this->searchResultsFactory->create(); $searchResults->setSearchCriteria($searchCriteria); $searchResults->setItems($collection->getItems()); return $searchResults; } }