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