private async Task <PlayerOverview> UpdatePlayers(MatchFinishedEvent nextEvent, List <PlayerMMrChange> players) { var winnerPlayerIds = players.Select(w => PlayerId.Create(w.battleTag)).ToList(); var match = nextEvent.match; var winnerIdCombined = new BattleTagIdCombined( players.Select(p => PlayerId.Create(p.battleTag)).ToList(), match.gateway, match.gameMode, match.season); var winner = await _playerRepository.LoadOverview(winnerIdCombined.Id) ?? PlayerOverview.Create( winnerPlayerIds, match.gateway, match.gameMode, match.season); winner.RecordWin( players.First().won, (int?)players.First().updatedMmr?.rating ?? (int?)players.First().mmr?.rating ?? 0); return(winner); }