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; }
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); }
public async Task AdvanceTeams([FromBody] TeamAdvancement model) { await Validate(model); await PlayerService.AdvanceTeams(model); }