<?php

namespace OfficeBrain\Bundle\SettingBundle\Entity;

/**
 * SettingpageRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class SettingpageRepository extends \Doctrine\ORM\EntityRepository
{
	
	public function setPaginatorService($paginatorService)
	{
		$this->paginatorService = $paginatorService;
	}
	
	
	public function getQueryBuilder()
	{
		return $this->getEntityManager()->getRepository('OfficeBrainSettingBundle:Settingpage')->createQueryBuilder('wle');
	}

	public function getSettingPageList($page,$recrdPerPage) {
		$queryBuilder = $this->getQueryBuilder();
		$queryBuilder->orderBy('wle.id', 'DESC');
		$result = $queryBuilder->getQuery()->getResult();
		return $this->paginatorService->paginate($result, $page, $recrdPerPage);
	}

	public function saveSettingPage($dataobject, $object=null)
	{
		$entity = new SettingPage();
		if($object!=NULL){
			$entity = $object;
		}
		$entity->setTitle($dataobject->getTitle());
		$entity->setContent($dataobject->getContent());
		$entity->setStatus($dataobject->getStatus());
		$this->getEntityManager()->persist($entity);
		$this->getEntityManager()->flush();
		return $entity;
	}

	public function getSettingPageById($id)
	{

		$queryBuilder = $this->getQueryBuilder();
		$queryBuilder->where('wle.id = :id');
		$queryBuilder->setParameter('id', $id);
		return $queryBuilder->getQuery()->getOneOrNullResult();
	}

	public function getSettingPageBySlug($slug)
	{

		$queryBuilder = $this->getQueryBuilder();
		$queryBuilder->where('wle.slug = :slug');
		$queryBuilder->setParameter('slug', $slug);
		return $queryBuilder->getQuery()->getOneOrNullResult();
	}
	
	public function  getSettingPageBySlugActive($slug,$status){
		$queryBuilder = $this->getQueryBuilder();
		$queryBuilder->where('wle.slug = :slug');
		$queryBuilder->andWhere('wle.status = :status');
		$queryBuilder->setParameter('slug', $slug);
		$queryBuilder->setParameter('status', $status);
		return $queryBuilder->getQuery()->getOneOrNullResult();
	}
}
