public static List <PlayerStatsInfoItem> Sort(List <PlayerStatsInfoItem> players, PlayerSortByTypes type, bool desc) { switch (type) { case PlayerSortByTypes.Goal: if (desc) { return(( from list in players orderby list.GoalIds.Count descending select list ).ToList()); } return(( from list in players orderby list.GoalIds.Count select list ).ToList()); case PlayerSortByTypes.Assist: if (desc) { return(( from list in players orderby list.AssistIds.Count descending select list ).ToList()); } return(( from list in players orderby list.AssistIds.Count select list ).ToList()); case PlayerSortByTypes.Redcard: if (desc) { return(( from list in players orderby list.RedCardIds.Count descending select list ).ToList()); } return(( from list in players orderby list.RedCardIds.Count select list ).ToList()); case PlayerSortByTypes.Yellowcard: if (desc) { return(( from list in players orderby list.YellowCardIds.Count descending select list ).ToList()); } return(( from list in players orderby list.YellowCardIds.Count select list ).ToList()); case PlayerSortByTypes.PlayerName: if (desc) { return(( from list in players orderby list.Name.Name descending select list ).ToList()); } return(( from list in players orderby list.Name.Name select list ).ToList()); case PlayerSortByTypes.TeamName: if (desc) { return(( from list in players orderby list.TeamName.Value descending select list ).ToList()); } return(( from list in players orderby list.TeamName.Value select list ).ToList()); default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } }
public static IEnumerable <PlayerStatsInfoItem> Sort(IEnumerable <Team> teams, PlayerSortByTypes type, bool desc) { var list = ( from team in teams from playerId in team.PlayerIds select PersonRepository.GetInstance().FindPlayerById(playerId) into player select new PlayerStatsInfoItem { Id = player.Id, Name = player.Name, PersonalNumber = player.PersonalNumber, AssistIds = GetMatchEventsIds(player, MatchEvents.Assist), GoalIds = GetMatchEventsIds(player, MatchEvents.Goal), YellowCardIds = GetMatchEventsIds(player, MatchEvents.YellowCard), RedCardIds = GetMatchEventsIds(player, MatchEvents.RedCard), TeamName = TeamRepository.GetInstance().FindTeamByPlayerId(player.Id).Name }).ToList(); return(Sort(list, type, desc)); }