Example #1
0
        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));
            }
        }