示例#1
0
        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);
        }