Services/SiteManagementModel.php
public function updateSites($collection){
        $timeStamp = time();
        /** Parameter must be an array */
        if (!is_array($collection)) {
			return $this->createException('InvalidParameterValueException', 'Invalid parameter value. Parameter must be an array collection', 'E:S:001');
        }
        $countUpdates = 0;
        $updatedItems = array();
        foreach($collection as $data){
            if($data instanceof BundleEntity\Site){
                $entity = $data;
                $this->em->persist($entity);
                $updatedItems[] = $entity;
                $countUpdates++;
            }
            else if(is_object($data)){
                if(!property_exists($data, 'id') || !is_numeric($data->id)){
					return $this->createException('InvalidParameterException', 'Parameter must be an object with the "id" parameter and id parameter must have an integer value.', 'E:S:003');
                }
                if(!property_exists($data, 'date_updated')){
                    $data->date_updated = new \DateTime('now', new \DateTimeZone($this->kernel->getContainer()->getParameter('app_timezone')));
                }
                if(!property_exists($data, 'date_added')){
                    unset($data->date_added);
                }
                if(!property_exists($data, 'default_language')){
                    $data->default_language = 1;
                }
                $response = $this->getSite($data->id);
                if($response->error->exist){
					return $this->createException('EntityDoesNotExist', 'Site with id '.$data->id, 'E:D:002');
                }
                $oldEntity = $response->result->set;
                foreach($data as $column => $value){
                    $set = 'set'.$this->translateColumnName($column);
                    switch($column){
                        case 'default_language':
                            $lModel = $this->kernel->getContainer()->get('multilanguagesupport.model');
                            $response = $lModel->getLanguage($value);
                            if(!$response->error->exist){
								$oldEntity->$set($response->result->set);
                            }
                            else{
                                new CoreExceptions\EntityDoesNotExistException($this->kernel, $value);
                            }
                            unset($response, $sModel);
                            break;
                        case 'id':
                            break;
                        default:
                            $oldEntity->$set($value);
                            break;
                    }
                    if($oldEntity->isModified()){
                        $this->em->persist($oldEntity);
                        $countUpdates++;
                        $updatedItems[] = $oldEntity;
                    }
                }
            }
        }
		if($countUpdates > 0){
			$this->em->flush();
		return new ModelResponse($updatedItems, $countUpdates, 0, null, false, 'S:D:004', 'Selected entries have been successfully updated within database.', $timeStamp, time());
		}
		return new ModelResponse(null, 0, 0, null, true, 'E:D:004', 'One or more entities cannot be updated within database.', $timeStamp, time());
    }
public function updateSites($collection){
        $timeStamp = time();
        /** Parameter must be an array */
        if (!is_array($collection)) {
			return $this->createException('InvalidParameterValueException', 'Invalid parameter value. Parameter must be an array collection', 'E:S:001');
        }
        $countUpdates = 0;
        $updatedItems = array();
        foreach($collection as $data){
            if($data instanceof BundleEntity\Site){
                $entity = $data;
                $this->em->persist($entity);
                $updatedItems[] = $entity;
                $countUpdates++;
            }
            else if(is_object($data)){
                if(!property_exists($data, 'id') || !is_numeric($data->id)){
					return $this->createException('InvalidParameterException', 'Parameter must be an object with the "id" parameter and id parameter must have an integer value.', 'E:S:003');
                }
                if(!property_exists($data, 'date_updated')){
                    $data->date_updated = new \DateTime('now', new \DateTimeZone($this->kernel->getContainer()->getParameter('app_timezone')));
                }
                if(!property_exists($data, 'date_added')){
                    unset($data->date_added);
                }
                if(!property_exists($data, 'default_language')){
                    $data->default_language = 1;
                }
                $response = $this->getSite($data->id);
                if($response->error->exist){
					return $this->createException('EntityDoesNotExist', 'Site with id '.$data->id, 'E:D:002');
                }
                $oldEntity = $response->result->set;
                foreach($data as $column => $value){
                    $set = 'set'.$this->translateColumnName($column);
                    switch($column){
                        case 'default_language':
                            $lModel = $this->kernel->getContainer()->get('multilanguagesupport.model');
                            $response = $lModel->getLanguage($value);
                            if(!$response->error->exist){
								$oldEntity->$set($response->result->set);
                            }
                            else{
                                new CoreExceptions\EntityDoesNotExistException($this->kernel, $value);
                            }
                            unset($response, $sModel);
                            break;
                        case 'id':
                            break;
                        default:
                            $oldEntity->$set($value);
                            break;
                    }
                    if($oldEntity->isModified()){
                        $this->em->persist($oldEntity);
                        $countUpdates++;
                        $updatedItems[] = $oldEntity;
                    }
                }
            }
        }
		if($countUpdates > 0){
			$this->em->flush();
		return new ModelResponse($updatedItems, $countUpdates, 0, null, false, 'S:D:004', 'Selected entries have been successfully updated within database.', $timeStamp, time());
		}
		return new ModelResponse(null, 0, 0, null, true, 'E:D:004', 'One or more entities cannot be updated within database.', $timeStamp, time());
    }
public function updateSites ( $ collection ) { $ timeStamp = time ( ) ; /** Parameter must be an array */ if ( ! is_array ( $ collection ) ) { return $ this -> createException ( 'InvalidParameterValueException' , 'Invalid parameter value. Parameter must be an array collection' , 'E:S:001' ) ; } $ countUpdates = 0 ; $ updatedItems = array ( ) ; foreach ( $ collection as $ data ) { if ( $ data instanceof BundleEntity \ Site ) { $ entity = $ data ; $ this -> em -> persist ( $ entity ) ; $ updatedItems [ ] = $ entity ; $ countUpdates ++ ; } else if ( is_object ( $ data ) ) { if ( ! property_exists ( $ data , 'id' ) || ! is_numeric ( $ data -> id ) ) { return $ this -> createException ( 'InvalidParameterException' , 'Parameter must be an object with the "id" parameter and id parameter must have an integer value.' , 'E:S:003' ) ; } if ( ! property_exists ( $ data , 'date_updated' ) ) { $ data -> date_updated = new \ DateTime ( 'now' , new \ DateTimeZone ( $ this -> kernel -> getContainer ( ) -> getParameter ( 'app_timezone' ) ) ) ; } if ( ! property_exists ( $ data , 'date_added' ) ) { unset ( $ data -> date_added ) ; } if ( ! property_exists ( $ data , 'default_language' ) ) { $ data -> default_language = 1 ; } $ response = $ this -> getSite ( $ data -> id ) ; if ( $ response -> error -> exist ) { return $ this -> createException ( 'EntityDoesNotExist' , 'Site with id ' . $ data -> id , 'E:D:002' ) ; } $ oldEntity = $ response -> result -> set ; foreach ( $ data as $ column => $ value ) { $ set = 'set' . $ this -> translateColumnName ( $ column ) ; switch ( $ column ) { case 'default_language' : $ lModel = $ this -> kernel -> getContainer ( ) -> get ( 'multilanguagesupport.model' ) ; $ response = $ lModel -> getLanguage ( $ value ) ; if ( ! $ response -> error -> exist ) { $ oldEntity -> $ set ( $ response -> result -> set ) ; } else { new CoreExceptions \ EntityDoesNotExistException ( $ this -> kernel , $ value ) ; } unset ( $ response , $ sModel ) ; break ; case 'id' : break ; default : $ oldEntity -> $ set ( $ value ) ; break ; } if ( $ oldEntity -> isModified ( ) ) { $ this -> em -> persist ( $ oldEntity ) ; $ countUpdates ++ ; $ updatedItems [ ] = $ oldEntity ; } } } } if ( $ countUpdates > 0 ) { $ this -> em -> flush ( ) ; return new ModelResponse ( $ updatedItems , $ countUpdates , 0 , null , false , 'S:D:004' , 'Selected entries have been successfully updated within database.' , $ timeStamp , time ( ) ) ; } return new ModelResponse ( null , 0 , 0 , null , true , 'E:D:004' , 'One or more entities cannot be updated within database.' , $ timeStamp , time ( ) ) ; }
@name 			updateSites()

@since			1.0.0
@version         1.0.8
@author          Can Berkol

@ue              $this->createException()

@param           array           $collection

@return          \BiberLtd\Bundle\CoreBundle\Responses\ModelResponse
@name updateSites ()