コード例 #1
0
        public async Task RetrieveAllMArketData()
        {
            //var minId = await _context.Stocks.MinAsync(x => x.Id);
            //var maxId = await _context.Stocks.MaxAsync(x => x.Id);
            //var batchSize = 200;
            //var batchNumber = (int)Math.Ceiling((decimal)(maxId - minId + 1) / batchSize);
            //for (int i = 1; i <= batchNumber; i++)
            //{
            //    await RetrieveMarketData(i, batchSize, minId, maxId);
            //}
            foreach (var contextMarketData in _context.MarketDatas)
            {
                _context.Remove(contextMarketData);
            }
            await _context.SaveChangesAsync();

            var stocks = _context.Stocks
                         .Include(s => s.FinancialStatements)
                         .ThenInclude(f => f.BalanceSheet)
                         .Include(s => s.FinancialStatements)
                         .ThenInclude(f => f.IncomeStatement)
                         .Include(s => s.FinancialStatements)
                         .ThenInclude(f => f.CashFlowStatement);
            // Where(x => x.Id >= idFrom && x.Id <= idTo);
            await _stockMarketDataUpdater.UpdateMarketDataBatchAsync(stocks);

            await _context.SaveChangesAsync();
        }
コード例 #2
0
        public async Task <IActionResult> RefreshMarketData()
        {
            var isAuthorized = await _authorizationService.AuthorizeAsync(User, new Stock(), StockOperations.Refresh);

            if (!isAuthorized.Succeeded)
            {
                return(new ChallengeResult());
            }
            var stocks = _context.Stocks.Include(s => s.MarketData).OrderBy(s => s.Ticker);

            try
            {
                await _stockMarketDataUpdater.UpdateMarketDataBatchAsync(stocks);

                await _context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(Content("Failure : " + e.Message + ((e.InnerException != null) ? e.InnerException.Message : String.Empty)));
            }
            return(RedirectToAction(nameof(Index)));
        }