<?php
namespace OfficeBrain\Bundle\CoreBundle\Service;

class ArrayToPaginationManager
{
    protected $request;
    protected $paginationManager;
    protected $paginationArray;
    protected $pagination;

    public function __construct($request, $paginationManager)
    {
        $this->request = $request;
        $this->paginationManager = $paginationManager;
        $this->paginationArray = array();
        $this->pagination = null;
    }

    public function setPaginationArray($paginationArray)
    {
    	$this->paginationArray = $paginationArray;
    }

    public function getPaginationArray()
    {
    	return $this->paginationArray;
    }

    public function doConvert()
    { 
        $totalRecord = (!empty($this->paginationArray['totalCount']) ? $this->paginationArray['totalCount'] : count($this->paginationArray));
        $numItemsPerPage = (!empty($this->paginationArray['numItemsPerPage'])) ? $this->paginationArray['numItemsPerPage'] : 10;
        $this->pagination = $this->paginationManager->paginate($this->paginationArray['data'], $this->request->get('page', 1), $numItemsPerPage);
        $this->pagination->setTotalItemCount($totalRecord);
    }

    function getPagination()
    {
    	return $this->pagination;
    }
}
