public static string ExportCSV(TeamSetting teamlist) { return ExportCSV(teamlist.Teams.ToList()); }
// GET: Games/Create public async Task<ActionResult> CreateNG(CreateGameModel model) { if (model.SelectedPlayers == null) return null; //CreateGameModel model = JsonConvert.DeserializeObject<CreateGameModel>(res); var user = GetUser(); List<Player> players = new List<Player>(); List<Team> teams = new List<Team>(); if (model.SelectedPlayers != null) { players = await GetPlayersAsync(model.GetSelectedPlayersIDs()); TeamFactory teamFactory = new TeamFactory(players); teamFactory.PlayersPerTeam = model.TeamSize; if (model.ScrambledTeams) teamFactory.ScramblePlayers(); teams = teamFactory.CreateTeams(); } var club = user.Club; List<Lane> lanes = await GetLanesAsync(model.GetSelectedLanesIDs()); if (model.SelectedTeams != null) { teams.AddRange(await CopyTeams(model.SelectedTeams)); } var counter = 1; if (teams.Count < 3) return RedirectToAction("Create"); foreach (var item in teams) { item.AltName = counter.ToString(); counter++; } if (model.SaveToMemory) { var setting = new TeamSetting(teams); setting.SetCreated(user); setting.ClubID = club.ID; setting.SetName(model.MemoryName); db.SavedTeams.Add(setting); } if (model.GameName == "") model.GameName = "Namnlös"; int[] teamSize = GetGroupSize(model.Groups, teams.Count); //Beräkna banor int lanesPerGroup = GetLanesPerGroup(model.Groups, lanes.Count); Game g = null; for (int i = 0; i < model.Groups; i++) { g = new Game(); g.Club = club; g.Deleted = false; g.Ended = null; g.Name = model.GameName; g.IsGroup = model.Groups > 0; g.IsScramble = model.ScrambledTeams; g.PlayersPerTeam = model.TeamSize; g.Started = DateTime.Now; if (model.Groups > 1) { g.Group = i + 1; } else { g.Group = 0; } List<Lane> gameLanes = lanes.Skip(i * lanesPerGroup).Take(lanesPerGroup).ToList(); g.Lanes = gameLanes; List<Team> gameTeams = teams.Skip(toSkip(i, teamSize)).Take(teamSize[i]).ToList(); foreach (var item in gameTeams) { item.SetGame(g); } g.Rounds = Utilities.GetRounds(gameTeams, gameLanes).OrderBy(r=> r.PlayOrder).ToList(); g.Teams = gameTeams; db.Games.Add(g); await db.SaveChangesAsync(); foreach (var item in g.Rounds) { var _teams = item.Teams.ToArray(); item.Team1ID = _teams[0].ID; item.Team2ID = _teams[1].ID; } g.Rounds = Utilities.FixEqualLaneAmount(g.Rounds, g.Lanes); await db.SaveChangesAsync(); } return RedirectToAction("Index"); }
public async Task<TeamSetting> GenerateTeamSettingAsync(ApplicationDbContext db, ApplicationUser user) { if (user == null) return null; var result = new TeamSetting(); result.Active = true; result.ClubID = user.Club.ID; result.SetCreated(user); result.Name = Name; if (Teams == null) Teams = new List<JSONTeam>(); var teams = await Teams.GetTeamsAsync(db); if (Players == null) Players = new List<JSONPlayer>(); var players = await Players.GetPlayersAsync(db); if (players.Count > 0) { TeamFactory factory = new TeamFactory(players); factory.PlayersPerTeam = TeamSize; teams.AddRange(factory.CreateTeams()); } result.Teams = teams; var counter = 1; foreach (var item in result.Teams) { item.AltName = counter.ToString(); counter++; } return result; }
public PlayerList(TeamSetting model) { this.Name = model.Name; this.ClubID = model.ClubID; this.Players = model.GetPlayers(); }
public JSONTeamSetting(TeamSetting model) { this.ID = model.ID; this.Teams = model.Teams.ToList().GetJSON(); this.Name = model.Name; this.Deleted = model.Deleted; }