Exemplo n.º 1
0
        public static IOrderedQueryable <Beer> OrderBy(this IQueryable <Beer> query, BeerGetBinding binding)
        {
            switch (binding.OrderBy)
            {
            case BeerSort.Abv:
                return(query.OrderBy(binding.OrderAscending, x => x.Abv));

            default:
                return(query.OrderBy(binding.OrderAscending, x => x.Name));
            }
        }
Exemplo n.º 2
0
        public async Task <PagedView <View.Beer> > GetBeers(BeerGetBinding binding)
        {
            using (var context = GetMainContext())
            {
                int?brandId = context.BeerBrands.GetId(binding.BrandId);

                return(await context.Beers.Include(x => x.BeerStyle)
                       .WhereIf(brandId.HasValue, x => x.BeerBrandId == brandId).OrderBy(binding)
                       .WhereIf(!string.IsNullOrWhiteSpace(binding.Search), x => x.Name.ToLower().Contains(binding.Search.ToLower()) || x.ValueId.ToLower().Contains(binding.Search.ToLower()))
                       .Select(x => new View.Beer(x))
                       .ToPagedViewAsync(binding));
            }
        }
 public async Task <IActionResult> Get([FromQuery] BeerGetBinding binding) => Ok(await _beerHandler.GetBeers(binding));