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(); }
private void CacheForexRates(string key, ForexResult forexResult) { _cache.Set(key, forexResult); }
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)); }