private void AddMatchPlayers(TeamMatchPlayerEntryType[] players, MatchEntity match, bool thuisSpeler) { foreach (var frenoyVerslagSpeler in players) { MatchPlayerEntity matchPlayerEntity = new MatchPlayerEntity { MatchId = match.Id, Ranking = frenoyVerslagSpeler.Ranking, Home = thuisSpeler, Name = GetSpelerNaam(frenoyVerslagSpeler), Position = int.Parse(frenoyVerslagSpeler.Position), UniqueIndex = int.Parse(frenoyVerslagSpeler.UniqueIndex), Status = PlayerMatchStatus.Major }; if (frenoyVerslagSpeler.VictoryCount != null) { matchPlayerEntity.Won = int.Parse(frenoyVerslagSpeler.VictoryCount); } else { Debug.Assert(frenoyVerslagSpeler.IsForfeited, "Either a VictoryCount or IsForfeited"); } PlayerEntity dbPlayer = null; if (match.IsHomeMatch.HasValue && ((match.IsHomeMatch.Value && thuisSpeler) || (!match.IsHomeMatch.Value && !thuisSpeler))) { if (_isVttl) { dbPlayer = _db.Players.SingleOrDefault(x => x.ComputerNummerVttl.HasValue && x.ComputerNummerVttl.Value.ToString() == frenoyVerslagSpeler.UniqueIndex); } else { dbPlayer = _db.Players.SingleOrDefault(x => x.LidNummerSporta.HasValue && x.LidNummerSporta.Value.ToString() == frenoyVerslagSpeler.UniqueIndex); } } if (dbPlayer != null) { matchPlayerEntity.PlayerId = dbPlayer.Id; if (!string.IsNullOrWhiteSpace(dbPlayer.NaamKort)) { matchPlayerEntity.Name = dbPlayer.NaamKort; } } match.Players.Add(matchPlayerEntity); } }
/// <summary> /// Set all players for the match to Captain/Major /// </summary> /// <param name="blockAlso">Also block the match to the newStatus level</param> public Match EditMatchPlayers(int matchId, int[] playerIds, string newStatus, bool blockAlso) { Debug.Assert(newStatus == PlayerMatchStatus.Captain || newStatus == PlayerMatchStatus.Major); using (var db = new TtcDbContext()) { var match = db.Matches.Single(x => x.Id == matchId); match.Block = blockAlso ? newStatus : null; var existingPlayers = db.MatchPlayers .Where(x => x.MatchId == matchId) .Where(x => x.Status == newStatus) .ToArray(); db.MatchPlayers.RemoveRange(existingPlayers); for (int i = 0; i < playerIds.Length; i++) { var player = db.Players.Find(playerIds[i]); var newMatchPlayer = new MatchPlayerEntity { Id = i * -1, MatchId = matchId, PlayerId = player.Id, Name = player.NaamKort, Status = newStatus, Ranking = match.Competition == Competition.Vttl ? player.KlassementVttl : player.KlassementSporta, Home = match.IsHomeMatch.Value, Position = i }; db.MatchPlayers.Add(newMatchPlayer); } db.SaveChanges(); } var newMatch = GetMatch(matchId); return newMatch; }