Ejemplo n.º 1
0
 private static Expression <Func <FoodDocument, bool> > FilterBy(FilterFoodsQuery request)
 {
     return(request.FilterBy switch
     {
         "category" => x => x.CategoryId == request.FilterValue,
         "deal" => x => x.DealId == request.FilterValue,
         "restaurant" => x => x.RestaurantId == request.FilterValue,
         _ => x => true
     });
Ejemplo n.º 2
0
        public async Task <Result <IPagedList <FoodMinimalDto> > > Handle(FilterFoodsQuery request,
                                                                          CancellationToken cancellationToken)
        {
            var foods = await _collection.FoodCollection.Find(FilterBy(request))
                        .SortByDescending(FoodDocument.GetOrderBy(request.OrderBy))
                        .Skip(PaginationHelper.Skip(request.PageNumber, request.PageSize))
                        .Limit(request.PageSize)
                        .Project(Projections.MinimalFoodProjection())
                        .ToListAsync(cancellationToken);

            return(Result.Ok(foods.ToPagedList(request.PageNumber, request.PageSize)));
        }