示例#1
0
 public void Apply()
 {
     if (!CheckBalance(GetAmount(), _fee))
     {
         return;
     }
     lock (_mutex)
         ApplyImpl();
     if (_fee != null)
     {
         _account.Balance = _account.Balance - _converter.Convert(_fee, _account.CurrencyInfo);
     }
     _account.AddHistory(this);
 }
示例#2
0
        public void TestUsdConversion()
        {
            CurrencyInfo usd = new CurrencyInfo("USD", "$", "{1}{0}");
            CurrencyInfo eur = new CurrencyInfo("EUR", "€", "{1}{0}");

            CurrencyExchangeConverter converter = new CurrencyExchangeConverter(usd);

            converter.AddRatio(eur, 0.75f);
            Currency currency          = CurrencyProvider.GetCurrency(100, eur);
            Currency convertedCurrency = converter.Convert(currency, usd);

            Currency expectedCurrency = CurrencyProvider.GetCurrency(100 / 0.75m, usd);

            Assert.AreEqual(convertedCurrency.GetDecimalValue(), expectedCurrency.GetDecimalValue());
        }