Пример #1
0
        private void AuditCurrencyRates(ForexResult forexResult)
        {
            foreach (var item in forexResult.Rates)
            {
                _context.ExchangeRates.Add(new Entities.ExchangeRate
                {
                    BaseCurrency   = forexResult.Base,
                    TargetCurrency = item.Key,
                    Rate           = item.Value,
                    Timestamp      = forexResult.Timestamp,
                    Date           = forexResult.Date
                });
            }

            _context.SaveChanges();
        }
Пример #2
0
 private void CacheForexRates(string key, ForexResult forexResult)
 {
     _cache.Set(key, forexResult);
 }
Пример #3
0
        private static decimal GetCurrencyRate(string baseCurrency, string targetCurrency, ForexResult forexResult)
        {
            decimal rate = 0;

            if (forexResult.Base.Equals(baseCurrency))
            {
                rate = forexResult.Rates[targetCurrency];
            }
            else if (forexResult.Base.Equals(targetCurrency))
            {
                rate = 1 / forexResult.Rates[baseCurrency];
            }
            else
            {
                var baseRate   = 1 / forexResult.Rates[baseCurrency];
                var targetRate = 1 / forexResult.Rates[targetCurrency];
                rate = 1 * baseRate * 1 / targetRate;
            }

            return(Math.Round(rate, _decimalRounding));
        }