Example #1
0
 /**
  * Update entity by adding or updating properties
  *
  * @param string      $tableName   Table name
  * @param TableEntity $entity      Entity to update
  * @param boolean     $verifyEtag  Verify etag of the entity (used for concurrency)
  * @param array       $properties  Properties to merge. All properties will be used when omitted.
  * @return null|TableEntity
  * @throws RuntimeException
  */
 public function mergeEntity($tableName = '', TableEntity $entity = null, $verifyEtag = false, $properties = array())
 {
     $mergeEntity = null;
     if (is_array($properties) && count($properties) > 0) {
         // Build a new object
         $mergeEntity = new DynamicTableEntity($entity->getPartitionKey(), $entity->getRowKey());
         // Keep only values mentioned in $properties
         $azureValues = $entity->getAzureValues();
         foreach ($azureValues as $value) {
             if (in_array($value->Name, $properties)) {
                 $mergeEntity->setAzureProperty($value->Name, $value->Value, $value->Type);
             }
         }
     } else {
         $mergeEntity = $entity;
     }
     return $this->_changeEntity(Request::MERGE, $tableName, $mergeEntity, $verifyEtag);
 }