예제 #1
0
    public function getList(HttpRequest $httpRequest, $paginationMaxRows = null) {
        $httpResponse = new HttpResponse();
        try {
            if (!isset($paginationMaxRows)) {
                $paginationMaxRows = \core\Config::PAGINANTION_MAX_ROWS;
            }

            $listViewControl = new ListViewControl($httpRequest->getQueryString(), $this->business->getListCount(), $paginationMaxRows);

            $list = $this->business->getList(
                    $listViewControl->getOffset(),
                    $paginationMaxRows,
                    $listViewControl->getOrderBy(),
                    $listViewControl->getOrderDirection()
            );

            $content = null;

            if ($httpRequest->getContentType() == Config::CONTENT_TYPE_TEXT) {
                if ($list) {
                    $listView = $this->extractListViewFromEntityList($this->entity, $this->listViewColumns, $list, $listViewControl, true);
                    $content[self::LIST_VIEW] = HtmlHelper::createTable($listView[self::LIST_VIEW_HEADER], $listView[self::LIST_VIEW_CONTENT], $listView[self::LIST_VIEW_PAGINATOR]);
                } else {
                    \App::getInstance()->setOutputMessage(Messages::NO_RECORDS_FOUND);
                    $content[self::LIST_VIEW] = null;
                }

            } else if ($httpRequest->getContentType() == Config::CONTENT_TYPE_JSON) {
                if ($list) {
                    $content = $list;
                } else {
                    $httpResponse->setSuccess(false);
                    $content = Messages::NO_RECORDS_FOUND;
                }
            }

            $httpResponse->setContent($content);

            return $httpResponse;

        } catch (\Exception $e) {
            throw new PresentationException($e);
        }
    }