public IList <PlayerWinRecord> GetPlayerWinRecords(int gameDefinitionId) { var data = dataContext.MakeRawSqlQuery <PlayerWinRecordWithFlatPoints>(SQL_GET_PLAYER_INFO_FOR_GIVEN_GAME_DEFINITION, new SqlParameter("GameDefinitionId", gameDefinitionId)); var results = data.Select(x => new PlayerWinRecord { PlayerId = x.PlayerId, NemePointsSummary = new NemePointsSummary(x.BaseNemePoints, x.GameDurationBonusNemePoints, x.WeightBonusNemePoints), TotalGamesPlayed = x.TotalGamesPlayed, AveragePointsPerGame = x.AveragePointsPerGame, PlayerName = x.PlayerName, GamesWon = x.GamesWon, WinPercentage = x.WinPercentage, PlayerActive = x.PlayerActive, GamesLost = x.GamesLost, IsChampion = x.IsChampion, IsFormerChampion = x.IsFormerChampion }).ToList(); results.ForEach(record => { record.WinPercentage = WinPercentageCalculator.CalculateWinPercentage(record.GamesWon, record.GamesLost); record.TotalGamesPlayed = record.GamesLost + record.GamesWon; if (record.TotalGamesPlayed > 0) { record.AveragePointsPerGame = record.TotalGamesPlayed > 0 ? (float)record.NemePointsSummary.TotalPoints / record.TotalGamesPlayed : 0; } }); return(results); }
public PlayerWithNemesisViewModel Build(PlayerWithNemesis playerWithNemesis, ApplicationUser currentUser) { ValidatePlayerNotNull(playerWithNemesis); AddInactivePlayerSuffix(playerWithNemesis); PlayerWithNemesisViewModel model = new PlayerWithNemesisViewModel { PlayerId = playerWithNemesis.PlayerId, PlayerName = playerWithNemesis.PlayerName, PlayerActive = playerWithNemesis.PlayerActive, PlayerRegistered = playerWithNemesis.PlayerRegistered, UserCanEdit = (currentUser != null && playerWithNemesis.GamingGroupId == currentUser.CurrentGamingGroupId), NemesisPlayerId = playerWithNemesis.NemesisPlayerId, NemesisPlayerName = playerWithNemesis.NemesisPlayerName, PreviousNemesisPlayerId = playerWithNemesis.PreviousNemesisPlayerId, PreviousNemesisPlayerName = playerWithNemesis.PreviousNemesisPlayerName, NumberOfPlayedGames = playerWithNemesis.GamesLost + playerWithNemesis.GamesWon, OverallWinPercentage = WinPercentageCalculator.CalculateWinPercentage(playerWithNemesis.GamesWon, playerWithNemesis.GamesLost), TotalPoints = playerWithNemesis.TotalPoints, TotalChampionedGames = playerWithNemesis.TotalChampionedGames }; return(model); }
public PlayerWithNemesisViewModel Build(PlayerWithNemesis playerWithNemesis, string email, ApplicationUser currentUser) { ValidatePlayerNotNull(playerWithNemesis); AddInactivePlayerSuffix(playerWithNemesis); var totalGamesPlayed = playerWithNemesis.GamesLost + playerWithNemesis.GamesWon; var model = new PlayerWithNemesisViewModel { PlayerId = playerWithNemesis.PlayerId, PlayerName = playerWithNemesis.PlayerName, PlayerActive = playerWithNemesis.PlayerActive, PlayerRegistered = playerWithNemesis.PlayerRegistered, RegisteredUserEmailAddress = email, UserCanEdit = (currentUser != null && playerWithNemesis.GamingGroupId == currentUser.CurrentGamingGroupId), NemesisPlayerId = playerWithNemesis.NemesisPlayerId, NemesisPlayerName = playerWithNemesis.NemesisPlayerName, PreviousNemesisPlayerId = playerWithNemesis.PreviousNemesisPlayerId, PreviousNemesisPlayerName = playerWithNemesis.PreviousNemesisPlayerName, NumberOfPlayedGames = totalGamesPlayed, OverallWinPercentage = WinPercentageCalculator.CalculateWinPercentage(playerWithNemesis.GamesWon, playerWithNemesis.GamesLost), NemePointsSummary = new NemePointsSummaryViewModel(playerWithNemesis.NemePointsSummary), TotalChampionedGames = playerWithNemesis.TotalChampionedGames, AveragePointsPerGame = totalGamesPlayed > 0 ? (float)playerWithNemesis.NemePointsSummary.TotalPoints / (float)totalGamesPlayed : 0, AchievementsPerLevel = playerWithNemesis.AchievementsPerLevel }; return(model); }
public IList <PlayerGameSummary> GetPlayerGameSummaries(int playerId) { var data = dataContext.MakeRawSqlQuery <PlayerGameSummary>(SQL_GET_PLAYER_GAME_SUMMARY_INFO, new SqlParameter("PlayerId", playerId)); var results = data.ToList(); results.ForEach(record => record.WinPercentage = WinPercentageCalculator.CalculateWinPercentage(record.NumberOfGamesWon, record.NumberOfGamesLost)); return(results); }
public IList <PlayerWinRecord> GetPlayerWinRecords(int gameDefinitionId) { DbRawSqlQuery <PlayerWinRecord> data = dataContext.MakeRawSqlQuery <PlayerWinRecord>(SQL_GET_PLAYER_INFO_FOR_GIVEN_GAME_DEFINITION, new SqlParameter("GameDefinitionId", gameDefinitionId)); var results = data.ToList(); results.ForEach(record => record.WinPercentage = WinPercentageCalculator.CalculateWinPercentage(record.GamesWon, record.GamesLost)); return(results); }
public virtual List <TopPlayer> GetTopPlayers(int numberOfPlayersToRetrieve) { DbRawSqlQuery <TopPlayer> data = dataContext.MakeRawSqlQuery <TopPlayer>(string.Format(SQL_GET_TOP_PLAYERS, numberOfPlayersToRetrieve)); List <TopPlayer> topPlayers = data.ToList(); //WinPercentage as it is originally pulled back from the query contains the number of games won and we have to //do the below math to switch it to a win % topPlayers.ForEach(player => player.WinPercentage = WinPercentageCalculator.CalculateWinPercentage(player.WinPercentage, player.TotalNumberOfGamesPlayed)); return(topPlayers); }
public virtual List <TopPlayer> GetTopPlayers(int numberOfPlayersToRetrieve) { var data = dataContext.MakeRawSqlQuery <TopPlayerWithFlatPoints>(string.Format(SQL_GET_TOP_PLAYERS, numberOfPlayersToRetrieve)); var topPlayers = data.Select(x => new TopPlayer { NemePointsSummary = new NemePointsSummary(x.BaseNemePoints, x.GameDurationBonusPoints, x.GameWeightBonusPoints), PlayerName = x.PlayerName, WinPercentage = x.WinPercentage, PlayerId = x.PlayerId, TotalNumberOfGamesPlayed = x.TotalNumberOfGamesPlayed }).ToList() .ToList(); //WinPercentage as it is originally pulled back from the query contains the number of games won and we have to //do the below math to switch it to a win % topPlayers.ForEach(player => player.WinPercentage = WinPercentageCalculator.CalculateWinPercentage(player.WinPercentage, player.TotalNumberOfGamesPlayed - player.WinPercentage)); return(topPlayers); }
public int TestOtherCases(int numberOfWins, int numberOfLosses) { return(WinPercentageCalculator.CalculateWinPercentage(numberOfWins, numberOfLosses)); }
public void ItReturnsZeroIfThereAreOnlyLosses() { var result = WinPercentageCalculator.CalculateWinPercentage(0, 21); Assert.That(result, Is.EqualTo(0)); }
public void ItReturnsOneHundredPercentIfThereAreOnlyWins() { var result = WinPercentageCalculator.CalculateWinPercentage(42, 0); Assert.That(result, Is.EqualTo(100)); }
public void ItReturnsZeroWhenThereAreZeroGamesPlayed() { var result = WinPercentageCalculator.CalculateWinPercentage(0, 0); Assert.That(result, Is.EqualTo(0)); }