/**
  * Build a Config instance using form data and the reward type
  *
  * @param Type\TypeInterface $type
  * @param array $formData
  *
  * @return Config
  */
 public function build(Type\TypeInterface $type, array $formData)
 {
     $config = $this->_factory->getConfig();
     $config->setType($type);
     if (!empty($formData['name'])) {
         $config->setName($formData['name']);
     }
     $config->setMessage($formData['message']);
     $this->_addConstraints($config, $formData);
     $this->_addTriggers($config, $formData);
     $this->_addRewardOptions($config, $formData);
     return $config;
 }
 /**
  * Loop through database result and bind to a ConfigProxy object. If $asArray is set to false, a single configuration
  * will be returned.
  *
  * @param Result $result
  * @param bool $asArray
  *
  * @return array | ConfigProxy
  */
 private function _bind(Result $result, $asArray = true)
 {
     $configs = [];
     foreach ($result as $row) {
         $config = $this->_configFactory->getConfigProxy();
         $config->setID((int) $row->id);
         $config->setName($row->name);
         $config->setType($this->_types->get($row->type));
         $config->setMessage($row->message);
         $createdAt = new \DateTime();
         $createdAt->setTimestamp($row->createdAt);
         $config->setCreatedAt($createdAt);
         $configs[] = $config;
     }
     return $asArray ? $configs : array_shift($configs);
 }