public async Task <IEnumerable <string> > Handle(DataSetRequest message) { var container = new DataSetContainer(_dataSetResolver, message.Properties); container.AddRange(DataSetTypes); var messages = await container.Execute(container.DatasetsByType.Keys.First(t => t.FullName == message.DataSet)); return(messages); }
public async Task <StockData> GetStockDataAsync(string stockId, string stockExchange, DateTime fromDate, DateTime toDate) { HttpClient client = new HttpClient(); string baseUrl = $"https://www.quandl.com/api/v3/datasets/{stockExchange}/{stockId}.json"; var uriBuilder = new UriBuilder(baseUrl); var query = HttpUtility.ParseQueryString(uriBuilder.Query); if (fromDate != null) { query["start_date"] = fromDate.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture); } if (toDate != null) { query["end_date"] = toDate.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture); } query["api_key"] = ApiKey; uriBuilder.Query = query.ToString(); HttpResponseMessage response = await client.GetAsync(uriBuilder.ToString()); if (!response.IsSuccessStatusCode) { return(null); } string jsonText = await response.Content.ReadAsStringAsync(); DataSetContainer dataSetContainer = JsonConvert.DeserializeObject <DataSetContainer>(jsonText); StockData stockData = new StockData { Id = dataSetContainer.dataset.DatasetCode, Name = dataSetContainer.dataset.Name, Description = dataSetContainer.dataset.Description, StockExchange = dataSetContainer.dataset.DatabaseCode, TimeSeries = new List <TimeSeriesItem>() }; stockData.TimeSeries = ExtractTimeSeriesData(dataSetContainer.dataset); return(stockData); }
static DataSetRequestHandler() { DataSetTypes = DataSetContainer.DiscoverDataSets(); }
static TestDataController() { DataSetTypes = DataSetContainer.DiscoverDataSets(); }