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); }
//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); } }