コード例 #1
0
        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);
        }
コード例 #2
0
        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)));
        }
コード例 #3
0
        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 }));
        }
コード例 #4
0
        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 }));
        }
コード例 #5
0
        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)));
        }