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;
        }