private List <PlayerGameSummaryViewModel> GetPlayerGameSummary(int playerId, int lastGameId, string heroUnitTypeId) { //Get player game summary List <PlayerGameSummaryData> playerGameSummaryData = _playerStatDal.GetPlayerGameSummaryData(playerId, lastGameId, heroUnitTypeId); List <PlayerGameSummaryViewModel> vmGameSummary = new List <PlayerGameSummaryViewModel>(); foreach (PlayerGameSummaryData gameSummary in playerGameSummaryData) { PlayerGameSummaryViewModel vmGame = new PlayerGameSummaryViewModel { GameID = gameSummary.GameID, PlayedDate = gameSummary.PlayedDate.ToShortDateString(), GoldSpent = $"{gameSummary.GoldSpent:n0}", GameResult = gameSummary.GameResult, HeroKills = gameSummary.HeroKills, HeroDeaths = gameSummary.HeroDeaths, HeroAssists = gameSummary.HeroAssists, HeroLevel = gameSummary.HeroLevel, DamageDealt = $"{((int)gameSummary.DamageDealt):n0}", DamageTaken = $"{((int)gameSummary.DamageTaken):n0}", HeroImageURL = ContentURL.GetHeroIconURL(gameSummary.HeroUnitTypeID), }; double heroKDA = (gameSummary.HeroKills * 1.0 + gameSummary.HeroAssists) / gameSummary.HeroDeaths; vmGame.HeroKDA = heroKDA.ToString("0.00"); vmGame.HeroKDAColor = CSSColorizer.GetKDAColor(heroKDA); //Flip the wins if player is in team 2 if (gameSummary.Team == "2") { vmGame.TeamOneWinCount = gameSummary.TeamTwoWinCount; vmGame.TeamTwoWinCount = gameSummary.TeamOneWinCount; } else { vmGame.TeamOneWinCount = gameSummary.TeamOneWinCount; vmGame.TeamTwoWinCount = gameSummary.TeamTwoWinCount; } foreach (PlayerGameTeamPlayerData gameTeamPlayerData in gameSummary.TeamList) { gameTeamPlayerData.HeroImageURL = ContentURL.GetHeroIconURL(gameTeamPlayerData.HeroUnitTypeID); if (gameTeamPlayerData.Team == "1") { vmGame.Team1List.Add(gameTeamPlayerData); } else { vmGame.Team2List.Add(gameTeamPlayerData); } } vmGameSummary.Add(vmGame); } return(vmGameSummary); }
public List <PlayerStatisticsViewModel> GetPlayerStatistics(int orderType, int time) { List <PlayerStatisticsData> playerStatisticsData = _statisticsDal.GetPlayerStatistics(GetPlayerStatOrderType(orderType), GetPlayerStatTimeFilter(time)); List <PlayerStatisticsViewModel> vm = new List <PlayerStatisticsViewModel>(); foreach (PlayerStatisticsData data in playerStatisticsData) { PlayerStatisticsViewModel vmInner = new PlayerStatisticsViewModel { PlayerName = data.PlayerName, WinRatio = $"{data.WinRate:0.0%}", WinRatioPBColor = data.Wins < data.Losses || data.Wins == 0 ? "progressbar red" : "progressbar blue", AvgKDA = data.KDA.ToString("0.00"), AvgDamageDealt = $"{data.AvgDamageDealt:n0}", AvgDamageTaken = $"{data.AvgDamageTaken:n0}", AvgGoldSpent = $"{data.AvgGoldSpent:n0}", KDAColor = CSSColorizer.GetKDAColor(data.KDA) }; vm.Add(vmInner); } return(vm); }
public PlayerStatsPageViewModel GetPlayerStatSummary(string playerName, string serverName, int lastGameId) { PlayerStatsPageViewModel vm = new PlayerStatsPageViewModel { UserName = playerName, Server = serverName }; //Get player total summary first PlayerStatSummaryData summaryData = _playerStatDal.GetPlayerSummary(playerName, serverName); if (summaryData == null) { vm.HasFoundUser = false; return(vm); } vm.UserName = summaryData.PlayerName; vm.HasFoundUser = true; vm.Wins = summaryData.Win; vm.Losses = summaryData.Loss; vm.WLPercent = $"{(vm.Wins*1.0/(vm.Wins + vm.Losses)):0.0%}"; vm.LastPlayedDateTime = summaryData.LastGamePlayed; double avgPlayerKills = (summaryData.TotalPlayerKills * 1.0 / summaryData.TotalPlayerGameCount); double avgPlayerDeaths = (summaryData.TotalPlayerDeaths * 1.0 / summaryData.TotalPlayerGameCount); double avgPlayerAssists = (summaryData.TotalPlayerAssists * 1.0 / summaryData.TotalPlayerGameCount); vm.AveragePlayerKills = avgPlayerKills.ToString("0.0"); vm.AveragePlayerDeaths = avgPlayerDeaths.ToString("0.0"); vm.AveragePlayerAssists = avgPlayerAssists.ToString("0.0"); vm.AveragePlayerKDA = ((avgPlayerKills + avgPlayerAssists) / avgPlayerDeaths) .ToString("0.00"); //Get player hero summary List <PlayerHeroStatSummaryData> heroStatSummaryData = _playerStatDal.GetPlayerHeroSummary(summaryData.PlayerId); List <PlayerHeroStatsViewModel> vmHeroStats = new List <PlayerHeroStatsViewModel>(); foreach (PlayerHeroStatSummaryData heroSummary in heroStatSummaryData) { PlayerHeroStatsViewModel vmHero = new PlayerHeroStatsViewModel { HeroImageURL = ContentURL.GetHeroIconURL(heroSummary.HeroUnitTypeID), HeroName = heroSummary.HeroName, HeroWins = heroSummary.Wins, HeroLosses = heroSummary.Losses, HeroWLPercent = $"{(heroSummary.Wins*1.0/(heroSummary.Wins + heroSummary.Losses)):0.0%}" }; double avgHeroKills = (heroSummary.HeroTotalKills * 1.0 / heroSummary.HeroTotalPlayCount); double avgHeroDeaths = (heroSummary.HeroTotalDeaths * 1.0 / heroSummary.HeroTotalPlayCount); double avgHeroAssists = (heroSummary.HeroTotalAssists * 1.0 / heroSummary.HeroTotalPlayCount); vmHero.HeroAverageKills = avgHeroKills.ToString("0.0"); vmHero.HeroAverageDeaths = avgHeroDeaths.ToString("0.0"); vmHero.HeroAverageAssists = avgHeroAssists.ToString("0.0"); vmHero.HeroAverageKDA = ((avgHeroKills + avgHeroAssists) / avgHeroDeaths).ToString("0.00"); double heroKDA = ((avgHeroKills + avgHeroAssists) / avgHeroDeaths); vmHero.HeroAverageKDA = heroKDA.ToString("0.00"); vmHero.HeroKDAColor = CSSColorizer.GetKDAColor(heroKDA); vmHeroStats.Add(vmHero); } vm.PlayerHeroStatSummaryData = vmHeroStats; vm.PlayerGameSummaryData = GetPlayerGameSummary(summaryData.PlayerId, lastGameId, ""); vm.LastGameID = vm.PlayerGameSummaryData.Min(x => x.GameID); vm.SearchableServantData = _servantSearchDal.GetSearchableServants(); return(vm); }