Esempio n. 1
0
 /**
  * @author WN
  * @param Adviser $adviser
  * @param DataSources $dataSources
  * @param float $defaultRisk
  * @return Advice
  */
 public function process(Adviser $adviser, DataSources $dataSources, $defaultRisk = Risk::MINIMUM_RISK)
 {
     $advice = Advice::make(['adviser_type' => $adviser->getType(), 'adviser_name' => $adviser->getName()]);
     $risk = [];
     foreach ($adviser->getRules() as $rule) {
         if ($rule->getActive() != Rule::INACTIVE) {
             $risk = $this->processRule($rule, $advice, $dataSources, $risk);
         }
     }
     if (count($risk) == 0) {
         $risk[] = $defaultRisk;
     }
     $advice->setRisk(Risk::normalize(max($risk)));
     $advice->setMeta(['processor' => 'Standard processor', 'time' => date('c')]);
     return $advice;
 }
Esempio n. 2
0
 /**
  * @param float $risk
  * @return $this
  */
 public function setRisk($risk)
 {
     return $this->__call('setRisk', [Risk::normalize($risk)]);
 }