예제 #1
0
        public async Task Execute(IJobExecutionContext context)
        {
            var stocks = await _repository.GetStocks();

            if (stocks.Count == 0)
            {
                return;
            }

            foreach (var stock in stocks)
            {
                var apiInfo = await _apiService.GetDailyStock(stock.Symbol);

                if (apiInfo == null)
                {
                    continue;
                }

                await _mediator.Send(new UpdateStockStatusCommand(apiInfo.Symbol, apiInfo.MarketState));

                if (apiInfo.MarketState == "POST") //closed
                {
                    continue;
                }

                if (apiInfo.MarketState == "CLOSED")
                {
                    continue;
                }

                await _repository.AddDailyPrice(new PriceDaily
                {
                    Ask         = apiInfo.Ask,
                    Bid         = apiInfo.Bid,
                    AskSize     = apiInfo.AskSize,
                    BidSize     = apiInfo.BidSize,
                    StockSymbol = stock.Symbol,
                    Time        = apiInfo.Time,
                    Price       = apiInfo.Price,
                    Volume      = apiInfo.Volume
                });
            }
        }