private async Task <Player> GetSkillLevel(Player player) { try { var hltvRating = Task.Run(() => new HLTVRating(long.Parse(player.SteamID), myMatchRepository)); player.Skill.SetRating(await hltvRating); return(player); } catch (NoMatchstatisticsFoundException) { myLogger.LogWarning($"Didn't find any matches for {player.Name} (Steam ID: {player.SteamID}). Trying overall K/D rating from Steam."); } try { var steamapiStatistics = await mySteamworksApi.ParsePlayerStatistics(player.SteamID); var kdRating = new KDRating(steamapiStatistics); player.Skill.SetRating(kdRating); return(player); } catch (ProfileNotPublicException) { myLogger.LogWarning($"{player.Name}'s profile (Steam ID: {player.SteamID}) seems not to be public. Using dummy score!"); player.Skill.SetRating(new DummyRating { Score = new Random().NextDouble() + 0.3 }); } return(player); }
public void Score_TwiceAsManyKillsAsDeaths_ReturnsTwo() { var kills = new Statistic { Name = "total_kills", Value = 20 }; var lastMatchKills = new Statistic { Name = "last_match_kills", Value = 0 }; var deaths = new Statistic { Name = "total_deaths", Value = 10 }; var lastMatchDeaths = new Statistic { Name = "last_match_deaths", Value = 1 }; var kdRating = new KDRating(new List <Statistic>() { kills, lastMatchKills, deaths, lastMatchDeaths }); Assert.Equal(2.0d, kdRating.Score); }
public void Score_ZeroDeaths_ReturnsInfinity() { var kills = new Statistic { Name = "total_kills", Value = 20 }; var lastMatchKills = new Statistic { Name = "last_match_kills", Value = 0 }; var deaths = new Statistic { Name = "total_deaths", Value = 0 }; var lastMatchDeaths = new Statistic { Name = "last_match_deaths", Value = 1 }; var kdRating = new KDRating(new List <Statistic>() { kills, lastMatchKills, deaths, lastMatchDeaths }); Assert.Equal(double.PositiveInfinity, kdRating.Score); }
public void Score_EqualNumberOfKillsAndDeaths_ReturnsOne() { var kills = new Statistic { Name = "total_kills", Value = 10 }; var lastMatchKills = new Statistic { Name = "last_match_kills", Value = 0 }; var deaths = new Statistic { Name = "total_deaths", Value = 10 }; var lastMatchDeaths = new Statistic { Name = "last_match_deaths", Value = 1 }; var kdRating = new KDRating(new List <Statistic>() { kills, lastMatchKills, deaths, lastMatchDeaths }); Assert.Equal(1.0d, kdRating.Score); }