コード例 #1
0
ファイル: PlayerValidator.cs プロジェクト: cmu-sei/gameboard
        private async Task _validate(TeamAdvancement model)
        {
            // if (model.TeamId.IsEmpty())
            //     throw new ResourceNotFound();

            if ((await GameExists(model.GameId)).Equals(false))
            {
                throw new ResourceNotFound();
            }

            if ((await GameExists(model.NextGameId)).Equals(false))
            {
                throw new ResourceNotFound();
            }

            await Task.CompletedTask;
        }
コード例 #2
0
ファイル: PlayerService.cs プロジェクト: cmu-sei/gameboard
        public async Task AdvanceTeams(TeamAdvancement model)
        {
            var game = await GameStore.Retrieve(model.NextGameId);

            var allteams = await Store.List()
                           .Where(p => p.GameId == model.GameId)
                           .ToArrayAsync()
            ;

            var teams = allteams.GroupBy(p => p.TeamId)
                        .Where(g => model.TeamIds.Contains(g.Key))
                        .ToArray()
            ;

            var enrollments = new List <Data.Player>();

            foreach (var team in teams)
            {
                string newId = Guid.NewGuid().ToString("n");

                foreach (var player in team)
                {
                    player.Advanced = true;

                    enrollments.Add(new Data.Player {
                        TeamId       = newId,
                        UserId       = player.UserId,
                        GameId       = model.NextGameId,
                        ApprovedName = player.ApprovedName,
                        Name         = player.Name,
                        Sponsor      = player.Sponsor,
                        Role         = player.Role,
                        Score        = model.WithScores ? player.Score : 0
                    });
                }
            }

            await Store.Create(enrollments);

            await Store.Update(allteams);
        }
コード例 #3
0
ファイル: PlayerController.cs プロジェクト: cmu-sei/gameboard
        public async Task AdvanceTeams([FromBody] TeamAdvancement model)
        {
            await Validate(model);

            await PlayerService.AdvanceTeams(model);
        }