public async Task ImportData()
        {
            var client = _httpClientFactory.CreateClient();

            //var response = await client.GetAsync("http://api.marketstack.com/v1/exchanges?access_key=XXX");
            //response.EnsureSuccessStatusCode();
            //var json = await response.Content.ReadAsStringAsync();
            //var data = JsonConvert.DeserializeObject<ExchangeResponse>(json);

            //var markets = data.data.Select(x => new StockMarketEntity
            //{
            //    Name = x.name,
            //    Acronym = x.acronym,
            //    IdentifierCode = x.mic,
            //    Currency = x.currency,
            //    Country = x.country,
            //    City = x.city
            //});

            //await _context.StockMarkets.AddRangeAsync(markets);
            //await _context.SaveChangesAsync();

            //foreach(var stock in markets)
            //{
            //    response = await client.GetAsync($"http://api.marketstack.com/v1/tickers?access_key=XXX&exchange={stock.IdentifierCode}");
            //    response.EnsureSuccessStatusCode();
            //    json = await response.Content.ReadAsStringAsync();
            //    var tickerData = JsonConvert.DeserializeObject<TickerResponse>(json);

            //    var tickers = tickerData.data.Select(x => new TickerEntity
            //    {
            //        Name = x.name,
            //        StockIdentifierCode = x.stock_exchange.mic,
            //        Symbol = x.symbol
            //    });

            //    await _context.AddRangeAsync(tickers);
            //    await _context.SaveChangesAsync();
            //}

            foreach (var ticker in _context.Tickers.Where(x => x.StockIdentifierCode == "XNAS" || x.StockIdentifierCode == "XNYS" || x.StockIdentifierCode == "XWAR"))
            {
                var response = await client.GetAsync($"http://api.marketstack.com/v1/eod?access_key=XXX&limit=7&offset=7&symbols={ticker.Symbol}");

                response.EnsureSuccessStatusCode();
                var json = await response.Content.ReadAsStringAsync();

                var endOfDays = JsonConvert.DeserializeObject <EodResponse>(json);

                await _context.EndOfDays.AddRangeAsync(endOfDays.data);
            }

            await _context.SaveChangesAsync();
        }
示例#2
0
        public async Task Test_Query_Trades()
        {
            //Arrange
            var trade = new Trade
            {
                Symbol      = "REL",
                NoOfShares  = 12,
                Price       = 98.76m,
                PortfolioId = 1,
                Action      = "Buy"
            };

            //Act
            _testDBContext.Add(trade);
            await _testDBContext.SaveChangesAsync();

            var result = await _tradeRepository.Query().ToListAsync();

            // Assert
            Assert.True(result.Count > 0);
        }