public static IQueryable <Summoner> FilterSummonersBy( this IQueryable <Summoner> summoners, SummonerListFilterBy filterBy, string value) { ValidateInput(filterBy, value); if (string.IsNullOrWhiteSpace(value)) { return(summoners); } return(filterBy switch { SummonerListFilterBy.NoFilter => summoners, SummonerListFilterBy.Id => summoners .Where(s => s.ID == Convert.ToInt32(value)), SummonerListFilterBy.SummonerName => summoners .Where(s => s.SummonerName.ToLower().Contains(value.ToLower())), SummonerListFilterBy.SummonerLevel => summoners .Where(s => s.SummonerLevel == Convert.ToInt32(value)), SummonerListFilterBy.ServerID => summoners .Where(s => s.ServerID == Convert.ToInt32(value)), _ => throw new ArgumentOutOfRangeException (nameof(FilterSummonersBy), filterBy, null), });
public IQueryable <SummonerDto> GetSummoners( SummonerListFilterBy filterBy, string value) { return(context.Summoners .AsNoTracking() .FilterSummonersBy(filterBy, value) .MapSummonerToDto()); }