Exemplo n.º 1
0
 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();
         }
     }
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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();
            }
        }