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),
            });
Esempio n. 2
0
 public IQueryable <SummonerDto> GetSummoners(
     SummonerListFilterBy filterBy,
     string value)
 {
     return(context.Summoners
            .AsNoTracking()
            .FilterSummonersBy(filterBy, value)
            .MapSummonerToDto());
 }