Exemplo n.º 1
0
        public static async Task <DataTable> RunYahooSource(string stockId, DateTime start, DateTime end, DataTable DtStocks)
        {
            _country  = Country.USA;
            _config   = GetConfiguration();
            _provider = new StockQuoteSourceProvider(_config, _country);

            IStockQuoteDataSource yahooDataSource = GetYahooDataSource(_provider);

            if (yahooDataSource == null)
            {
                Console.WriteLine("Error : Yahoo data source object is null");
                return(new DataTable());
            }

            IReadOnlyList <IStockQuoteFromDataSource> results = await yahooDataSource.GetHistoricalQuotesAsync(_country, stockId, start, end, WriteToError);

            Object[] stockPrice = new Object[results.Count + 1];
            stockPrice[0] = stockId.ToUpper();
            int i = 1;

            foreach (IStockQuoteFromDataSource quote in results)
            {
                if (DtStocks.Rows.Count == 0)
                {
                    DtStocks.Columns.Add(quote.TradeDateTime.ToShortDateString(), typeof(Double));
                }
                stockPrice[i] = quote.ClosePrice;
                i++;
            }

            DtStocks.Rows.Add(stockPrice);
            PrintToCsv(DtStocks);
            return(DtStocks);
        }
        public void GetMostRecentQuoteTest(Country country, string stockId)
        {
            IConfiguration        config      = TestServiceProvider.GetTestConfiguration();
            IStockQuoteProvider   provider    = new StockQuoteSourceProvider(config, country);
            IStockQuoteDataSource yahooSource = provider.GetStockDataSources().FirstOrDefault(a => a.Source == Contracts.StockQuoteSource.Yahoo);

            Assert.NotNull(yahooSource);

            IStockQuoteFromDataSource result = yahooSource.GetMostRecentQuoteAsync(country, stockId, WriteToErrorLogAction).Result;

            Assert.NotNull(result);
            Assert.True(result.IsValid);
        }
Exemplo n.º 3
0
        //just for tests
        public static async Task <IReadOnlyList <IStockQuoteFromDataSource> > GetFromYahooSourceAsList(string stockId, DateTime start, DateTime end)
        {
            _country  = Country.USA;
            _config   = GetConfiguration();
            _provider = new StockQuoteSourceProvider(_config, _country);


            IStockQuoteDataSource yahooDataSource = GetYahooDataSource(_provider);

            if (yahooDataSource == null)
            {
                Console.WriteLine("Error : Yahoo data source object is null");
                return(new List <IStockQuoteFromDataSource>());
            }

            var results = await yahooDataSource
                          .GetHistoricalQuotesAsync(_country, stockId, start, end, WriteToError);

            return(results);
        }
        public void GetHistoricalQuotesTest(Country country, string stockId)
        {
            IConfiguration        config      = TestServiceProvider.GetTestConfiguration();
            IStockQuoteProvider   provider    = new StockQuoteSourceProvider(config, country);
            IStockQuoteDataSource yahooSource = provider.GetStockDataSources().FirstOrDefault(a => a.Source == Contracts.StockQuoteSource.Yahoo);

            Assert.NotNull(yahooSource);

            DateTime start = new DateTime(2018, 3, 12);
            DateTime end   = new DateTime(2018, 3, 16);

            IReadOnlyList <IStockQuoteFromDataSource> results = yahooSource.GetHistoricalQuotesAsync(country, stockId, start, end, WriteToErrorLogAction).Result;

            Assert.NotNull(results);
            Assert.Equal(5, results.Count);

            foreach (IStockQuoteFromDataSource data in results)
            {
                Assert.True(data.IsValid);
            }
        }