public static IEnumerable <Player> GetSelectedPlayersByTeamId(int teamId, int matchId) { return(Players.Where(p => p.TeamId == teamId && p.Selected && !MatchEventsData.GetForMatch(matchId) .Any(me => me.PlayerId == p.Id && me.Event == EventTypesEnum.RedCard))); }
public static void UpdateWithMatch(Match match) { bool cleanSheet = (match.AwayTeamScore == 0); // add appearance/cleansheet for each player var players = PlayerData.GetPlayersByTeamId(match.HomeTeamId).Where(p => p.Selected); foreach (var homePlayer in players) { var homePlayerStat = GetByPlayerId(homePlayer.Id); homePlayerStat.Appearances++; if (cleanSheet) { homePlayerStat.CleanSheets++; } } cleanSheet = (match.HomeTeamScore == 0); players = PlayerData.GetPlayersByTeamId(match.AwayTeamId).Where(p => p.Selected); foreach (var awayPlayer in players) { var awayPlayerStat = GetByPlayerId(awayPlayer.Id); awayPlayerStat.Appearances++; if (cleanSheet) { awayPlayerStat.CleanSheets++; } } // add match event stats foreach (var matchevent in MatchEventsData.GetForMatch(match.Id)) { var playerStat = PlayerStats.FirstOrDefault(ps => ps.PlayerId == matchevent.PlayerId); switch (matchevent.Event) { case EventTypesEnum.Goal: playerStat.Goals++; break; case EventTypesEnum.Assist: playerStat.Assists++; break; case EventTypesEnum.RedCard: playerStat.RedCards++; break; case EventTypesEnum.YellowCard: playerStat.YellowCards++; break; } } }