public async Task <IActionResult> AddMatch(SoloTeamMatchDto matchDto) { var soloTeamPlayers = new List <SoloTeamPlayer>(); foreach (var playerDto in matchDto.Players) { var player = await GetOrCreatePlayer(playerDto.Name); soloTeamPlayers.Add(new SoloTeamPlayer { Team = playerDto.Team, Player = player }); } var match = new SoloTeamMatch() { EndTime = matchDto.EndTime, StartTime = matchDto.StartTime, HomeTeamScore = matchDto.Team1Score, AwayTeamScore = matchDto.Team2Score, Players = soloTeamPlayers }; var result = await _matchService.AddMatchAsync <SoloTeamMatch>(match); return(Ok(result)); }
public async Task CalculateElo_MultiplePlayers_TeamAverageUsed(int team1score, int team2score, string p1name, double p1elo, string p2name, double p2elo, string p3name, double p3elo, string p4name, double p4elo) { IRankedMatch match = new SoloTeamMatch { Players = SoloPlayers, HomeTeamScore = team1score, AwayTeamScore = team2score }; var result = await _sut.AddMatchAsync <SoloTeamMatch>(match); var team1 = result.Players.Where(x => x.Team == TeamSide.Home); var team2 = result.Players.Where(x => x.Team == TeamSide.Away); var t1_player1 = team1.First().Player; var t1_player2 = team1.Last().Player; var t2_player1 = team2.First().Player; var t2_player2 = team2.Last().Player; Assert.Equal(p1name, t1_player1.Name); Assert.Equal(p1elo, t1_player1.CurrentElo, 1); Assert.Equal(p2name, t1_player2.Name); Assert.Equal(p2elo, t1_player2.CurrentElo, 1); Assert.Equal(p3name, t2_player1.Name); Assert.Equal(p3elo, t2_player1.CurrentElo, 1); Assert.Equal(p4name, t2_player2.Name); Assert.Equal(p4elo, t2_player2.CurrentElo, 1); }
public async Task CalculateElo_SoloTeamMatch_IndividualEloChange() { var match = new SoloTeamMatch { Players = SoloPlayers, HomeTeamScore = 1, AwayTeamScore = 0 }; var result = await _sut.AddMatchAsync <SoloTeamMatch>(match); Assert.All(match.Players, x => Assert.Equal(21.1, x.Match.EloChange, 1)); }