public List<PlayerHeroViewModel> GetHeroListForPlayerN(List<MatchDetail> matches, List<PlayerHeroViewModel> heroes, int playerIndex) { var affiliationHelper = new AffiliationHelper(); foreach (var match in matches) { try { var player = match.players[playerIndex]; var hero = heroes.Where(h => h.Name == player.hero.localized_name).FirstOrDefault(); if (hero != null) { ModifyHeroStatsBasedOnGame(match, player, hero); } else { hero = new PlayerHeroViewModel(player.hero.localized_name); ModifyHeroStatsBasedOnGame(match, player, hero); heroes.Add(hero); } } catch {} } return heroes; }
private void ModifyHeroStatsBasedOnGame(MatchDetail match, Player player, PlayerHeroViewModel hero) { hero.GamesPlayed += 1; hero.Kills += player.kills; hero.Deaths += player.deaths; hero.Assists += player.assists; hero.GoldPerMinute += player.gold_per_min; hero.XpPerMinute += player.xp_per_min; if (_affiliationHelper.PlayerWins(player, match.radiant_win)) { hero.Wins += 1; } }
public List<PlayerHeroViewModel> GetHeroListForOnePlayer(List<MatchDetail> matches, List<PlayerHeroViewModel> heroes) { foreach (var match in matches) { var player = match.players.FirstOrDefault(); var hero = heroes.Where(h => h.Name == player.hero.localized_name).FirstOrDefault(); if (hero != null) { ModifyHeroStatsBasedOnGame(match, player, hero); } else { hero = new PlayerHeroViewModel(player.hero.localized_name); ModifyHeroStatsBasedOnGame(match, player, hero); heroes.Add(hero); } } return heroes; }