private void StartTraders() { using var scope = _serviceProvider.CreateScope(); var dbContext = scope.ServiceProvider.GetService <ApplicationDbContext>(); var usersWithActiveStrategies = dbContext.ApplicationUsers.Where(x => x.IsTraderOn && x.Strategies.Any(s => s.Active)); foreach (var user in usersWithActiveStrategies) { if (!_traderManager.IsOnForUser(user)) { _traderManager.ManageTrader(user); } } dbContext.SaveChanges(); }
public async Task <IActionResult> StartTrader([FromBody] StartTraderRequest request) { try { var user = await _userManager.GetApplicationUserAsync(User); user.IsTraderOn = true; var marketOpen = MarketHelper.IsMarketOpen(); //if (marketOpen) await _traderManager.ManageTrader(user); await _dbContext.SaveChangesAsync(); return(Ok(new { marketOpen, user.IsTraderOn })); } catch (Exception e) { return(BadRequest(e.Message)); } }