private static void SnapshotExchangeRates(DateTime fromDate, DateTime untilDate) { using (var currencyMarket = new CurrencyMarketContext()) { DateTime currDate = fromDate; while (currDate <= untilDate) { Console.WriteLine("Snapshotting exchange rates in: " + currDate.ToString("dd/MM/yyyy")); foreach (var currExchangeRate in Fixer.GetAllExchangeRates(currDate)) { Currency sourceCurrency = currencyMarket.FindOrCreateCurrency(currExchangeRate.SourceCurrency); Currency targetCurrency = currencyMarket.FindOrCreateCurrency(currExchangeRate.TargetCurrency); currencyMarket.ExchangeRates.Add(new ExchangeRate() { SourceCurrency = sourceCurrency, TargetCurrency = targetCurrency, Rate = currExchangeRate.Rate, Date = currDate }); } currDate = currDate.AddDays(1); currencyMarket.SaveChanges(); } } }
private ERSnapshotsTracker SnapshotExchangeRates(DateTime fromDate, DateTime untilDate) { ERSnapshotsTracker tracker = new ERSnapshotsTracker(); DateTime currDate = fromDate; while (currDate <= untilDate) { if (!currencyMarket.ContainsExchangeRatesIn(currDate)) { logger.LogInformation("Snapshotting exchange rates in: " + currDate.ToString("dd/MM/yyyy")); foreach (var currExchangeRate in Fixer.GetAllExchangeRates(currDate)) { Currency sourceCurrency = currencyMarket.FindOrCreateCurrency(currExchangeRate.SourceCurrency); Currency targetCurrency = currencyMarket.FindOrCreateCurrency(currExchangeRate.TargetCurrency); currencyMarket.ExchangeRates.Add(new ExchangeRate() { SourceCurrency = sourceCurrency, TargetCurrency = targetCurrency, Rate = currExchangeRate.Rate, Date = currDate }); } tracker.ExchangeRates += currencyMarket.ExchangeRates.Local.Count; currencyMarket.SaveChanges(); tracker.Dates++; } else { logger.LogInformation("Already contained the exchange rates in: " + currDate.ToString("dd/MM/yyyy") + " [Skipping]"); } currDate = currDate.AddDays(1); } return(tracker); }
private static void Main(string[] args) { DateTime now = DateTime.Now; using (var currencyMarket = new CurrencyMarketContext()) { foreach (var currExchangeRate in Fixer.GetAllExchangeRates()) { Currency sourceCurrency = currencyMarket.FindOrCreateCurrency(currExchangeRate.SourceCurrency); Currency targetCurrency = currencyMarket.FindOrCreateCurrency(currExchangeRate.TargetCurrency); currencyMarket.ExchangeRates.Add(new ExchangeRate() { SourceCurrency = sourceCurrency, TargetCurrency = targetCurrency, Rate = currExchangeRate.Rate, Date = now }); } currencyMarket.SaveChanges(); } }