/**
  * Function to add or update condition
  * 
  * @param array $params 
  * @return array $result
  * @access public
  * @throws Exception when params is empty
  * @static
  */
 public static function add($params)
 {
     $result = array();
     if (empty($params)) {
         throw new Exception('Params can not be empty when adding or updating a civirule condition');
     }
     $condition = new CRM_Civirules_BAO_Condition();
     $fields = self::fields();
     foreach ($params as $key => $value) {
         if (isset($fields[$key])) {
             $condition->{$key} = $value;
         }
     }
     if (!isset($condition->name) || empty($condition->name)) {
         $condition->name = CRM_Civirules_Utils::buildNameFromLabel($condition->label);
     }
     $condition->save();
     self::storeValues($condition, $result);
     return $result;
 }