Пример #1
0
        internal List <Team> GenerateRandomTeams(int gamesInstanceId)
        {
            GamesInstance gamesInstance = _dbContext.GamesInstances.Find(gamesInstanceId);
            List <Person> activePeople  = _dbContext.Persons.Where(p => p.IsActive).ToList();

            activePeople = Shuffle <Person>(activePeople);

            List <Team> teams = Enumerable
                                .Range(0, (int)Math.Ceiling(activePeople.Count / (double)gamesInstance.PersonTeamSize))
                                .Select(t => new Team {
                GamesInstance = gamesInstance
            }).ToList();

            _dbContext.Teams.AddRange(teams);

            //I had to use an old school for loop here to have access to i, it pains me
            for (int i = 0; i < activePeople.Count; i++)
            {
                _dbContext.PersonTeams.Add(new PersonTeam
                {
                    Team   = teams[i % teams.Count],
                    Person = activePeople[i]
                });
            }

            _dbContext.SaveChanges();

            return(teams);
        }
Пример #2
0
        internal void CreateGamesInstance(GamesInstance gamesInstance)
        {
            List <GamesInstance> ActiveInstances = _dbContext.GamesInstances.Where(g => g.IsActive).ToList();

            ActiveInstances.ForEach(a => a.IsActive = false);

            _dbContext.Add(gamesInstance);
            _dbContext.SaveChanges();
        }
Пример #3
0
 public IActionResult CreateGamesInstance(GamesInstance gamesInstance)
 {
     _gamesInstanceService.CreateGamesInstance(gamesInstance);
     return(RedirectToAction("GamesInstanceIndex"));
 }