public async Task OnGet(int id) { var playerId = id; var player = await _player.GetById(playerId); PlayerDetailInfo.Player = player; var playerStats = await _stat.GetStatsByPlayerId(playerId); playerStats = playerStats.OrderBy(p => p.Match.MatchDate).ThenBy(p => p.Match.Order).ThenBy(p => p.Team.Id).ToList(); var totalStats = _stat.GetTotalStats(playerStats); var perMatchStats = _stat.GetPerMatchStats(totalStats, playerStats); PlayerDetailInfo.PenaltyRatio = _stat.GetPenaltyRatio(totalStats.PenaltyScore, totalStats.MissedPenalty); PlayerDetailInfo.TotalStats = totalStats; PlayerDetailInfo.PerMatchStats = perMatchStats; var allMatchStats = await _stat.GetAll(); PlayerDetailInfo.MatchForms = _stat.GetMatchFormsByPlayerId(allMatchStats, playerId); PlayerDetailInfo.TotalWins = _stat.GetTotalWinsByMatchForms(PlayerDetailInfo.MatchForms); PlayerDetailInfo.TotalLooses = _stat.GetTotalLoosesByMatchForms(PlayerDetailInfo.MatchForms); PlayerDetailInfo.WinRatio = _stat.GetWinRatioByMatchForms(PlayerDetailInfo.MatchForms); PlayerDetailInfo.LooseRatio = _stat.GetLooseRatioByMatchForms(PlayerDetailInfo.MatchForms); foreach (var stat in playerStats) { var playerStatDetail = new PlayerStatDetail { PlayerStat = stat, MatchStats = await _stat.GetStatsByMatchId(stat.MatchId) }; playerStatDetail.HomeTeamScore = _stat.GetScoreByStatsAndTeamId(playerStatDetail.MatchStats, stat.Match.HomeTeamId, stat.Match.AwayTeamId); playerStatDetail.AwayTeamScore = _stat.GetScoreByStatsAndTeamId(playerStatDetail.MatchStats, stat.Match.AwayTeamId, stat.Match.HomeTeamId); PlayerDetailInfo.PlayerStats.Add(playerStatDetail); } }