public static SubGame Create(long GameID, int Index) { SubGame subGame = ComponentFactory.CreateWithParent <SubGame>(Game.Scene.GetComponent <UIComponent>()); subGame.GameID = GameID; subGame.Index = Index; subGame.AddComponent <ResGroupLoadUIComponent>(); return(subGame); }
public async Task <IActionResult> AutoPractice() { var game = new Game { GameKind = GameKind.개인기록, Penalty = 0, Group = "Family", Place = "현대볼링장", bFine = false, bHandicap = false, Playtime = DateTime.Now }; await _context.Games.AddAsync(game); var subgame = new SubGame { GameID = game.ID, Round = 1 }; await _context.SubGames.AddAsync(subgame); var team = new Team { SubGameID = subgame.ID, TeamName = "A", TeamOrder = 0 }; await _context.Teams.AddAsync(team); var teamMember = new TeamMember { BowlerID = "fg001", Score = 0, Average = _context.BowlerAverages.Find("fg001").Average, Sequence = 0, TeamID = team.ID }; await _context.TeamMembers.AddAsync(teamMember); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> NextTeam(int Id) { var teamMembers = await _context.TeamMembers .Include(t => t.Bowler) .ThenInclude(b => b.BowlerAverage) .Include(t => t.Team) .Where(t => t.Team.SubGameID == Id) .OrderBy(t => t.TeamID) .ThenBy(t => t.Sequence) .AsNoTracking().ToListAsync(); var gameId = _context.SubGames.Single(g => g.ID == Id).GameID; var round = _context.SubGames.Where(s => s.GameID == gameId).Max(s => s.Round) + 1; var subgame = new SubGame { GameID = gameId, Round = round }; await _context.AddAsync(subgame); var team = new List <Team>(); foreach (var item in teamMembers.Select(t => t.Team).Distinct()) { team.Add(new Team { SubGameID = subgame.ID, TeamName = item.TeamName, TeamOrder = item.TeamOrder }); } await _context.AddRangeAsync(team); var teamMember = new List <TeamMember>(); int i = -1; int tid = 0; foreach (var item in teamMembers) { if (tid != item.TeamID) { tid = item.TeamID; i++; } teamMember.Add(new TeamMember { BowlerID = item.BowlerID, Score = 0, Average = item.Average, Sequence = item.Sequence, TeamID = team[i].ID }); } await _context.AddRangeAsync(teamMember); await _context.SaveChangesAsync(); //return RedirectToAction(nameof(Edit), new { Id = subgame.ID }); return(RedirectToAction(nameof(Index), new { Id = gameId, game = round })); }
public async Task <IActionResult> CreateTeam(int Id, int[] teamCnt, string[] selectLst) { int teamcnt = 0; int cnt = 0; int round = 1; SubGame subgame = new SubGame(); List <Team> team = new List <Team>(); List <TeamMember> teamMembers = new List <TeamMember>(); if (_context.SubGames.Where(s => s.GameID == Id).Count() > 0) { round = _context.SubGames.Where(s => s.GameID == Id).Max(s => s.Round) + 1; } subgame.GameID = Id; subgame.Round = round; await _context.SubGames.AddAsync(subgame); int halfcnt = teamCnt.Count() % 2 == 0 ? teamCnt.Count() / 2 : teamCnt.Count() / 2 + 1; foreach (var item in teamCnt) { int idx = 0; if (teamcnt < halfcnt) { idx = teamcnt * 2; } else { idx = (teamcnt - halfcnt) * 2 + 1; } team.Add(new Team { SubGameID = subgame.ID, TeamName = ((Char)(65 + idx)).ToString(), TeamOrder = idx }); await _context.AddAsync(team[teamcnt]); for (int i = 0; i < item; i++) { teamMembers.Add(new TeamMember { BowlerID = selectLst[cnt], Score = 0, Average = _context.BowlerAverages.Find(selectLst[cnt]).Average, TeamID = team[teamcnt].ID, Sequence = i }); cnt++; } teamcnt++; } await _context.AddRangeAsync(team); await _context.AddRangeAsync(teamMembers); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index), new { Id = Id })); }
public async Task <IActionResult> AutoPlay() { var game = new Game { GameKind = GameKind.비정기전, Penalty = 0, Group = "Family", Place = "현대볼링장", bFine = false, bHandicap = false, bCalTotal = true, Playtime = DateTime.Now }; await _context.Games.AddAsync(game); var subgame = new SubGame { GameID = game.ID, Round = 1 }; await _context.SubGames.AddAsync(subgame); var teams = new List <Team>() { new Team { SubGameID = subgame.ID, TeamName = "A", TeamOrder = 0 }, new Team { SubGameID = subgame.ID, TeamName = "B", TeamOrder = 1 }, new Team { SubGameID = subgame.ID, TeamName = "C", TeamOrder = 2 }, new Team { SubGameID = subgame.ID, TeamName = "D", TeamOrder = 3 } }; await _context.Teams.AddRangeAsync(teams); var teamMembers = new List <TeamMember>() { new TeamMember { BowlerID = "fg001", Score = 0, Average = _context.BowlerAverages.Find("fg001").Average, Sequence = 0, TeamID = teams[0].ID }, new TeamMember { BowlerID = "fg002", Score = 0, Average = _context.BowlerAverages.Find("fg002").Average, Sequence = 0, TeamID = teams[1].ID }, new TeamMember { BowlerID = "fg003", Score = 0, Average = _context.BowlerAverages.Find("fg003").Average, Sequence = 0, TeamID = teams[2].ID }, new TeamMember { BowlerID = "fg004", Score = 0, Average = _context.BowlerAverages.Find("fg004").Average, Sequence = 0, TeamID = teams[3].ID } }; await _context.TeamMembers.AddRangeAsync(teamMembers); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }