/**
  * Get currency rate
  *
  * @param ICurrency $currency
  * @param ICurrencyRateProvider $provider
  * @param null $date
  * @return float
  */
 private function getRate(ICurrency $currency, ICurrencyRateProvider $provider, $date = null)
 {
     if ($currency->getCode() != $provider->getBaseCurrency()->getCode()) {
         $rate = $this->rateManager->getRate($currency, $provider, $date);
         if (!$rate) {
             return null;
         }
         if (!$provider->isInversed()) {
             $rate = $rate->getNominal() * $rate->getRate();
         } else {
             $rate = $rate->getNominal() / $rate->getRate();
         }
     } else {
         $rate = 1.0;
     }
     return $rate;
 }