Example #1
0
        public async Task <List <OrderItem> > GetAllAsync(OrderItemFilterDto dto)
        {
            var query = _ctx.OrderItems.Where(x => true);

            if (dto.OrderId != null && dto.OrderId != Guid.Empty)
            {
                query = query.Where(x => x.OrderId == dto.OrderId);
            }
            if (dto.ProductId != null && dto.ProductId != Guid.Empty)
            {
                query = query.Where(x => x.ProductId == dto.ProductId);
            }
            var returnValue = await query.ToListAsync();

            return(returnValue);
        }
 protected override IQuery <OrderItem> ApplyWhereClause(IQuery <OrderItem> query, OrderItemFilterDto filter)
 {
     if (filter.MenuItemId <= 0)
     {
         if (filter.OrderId <= 0)
         {
             return(query);
         }
         else
         {
             return(query.Where(new SimplePredicate(nameof(OrderItem.OrderId), ValueComparingOperator.Equal,
                                                    filter.OrderId)));
         }
     }
     else
     {
         if (filter.OrderId <= 0)
         {
             return(query.Where(new SimplePredicate(nameof(OrderItem.MenuItemId), ValueComparingOperator.Equal,
                                                    filter.MenuItemId)));
         }
         else
         {
             return(query.Where(
                        new CompositePredicate(new List <IPredicate>()
             {
                 new SimplePredicate(nameof(OrderItem.OrderId), ValueComparingOperator.Equal, filter.OrderId),
                 new SimplePredicate(nameof(OrderItem.MenuItemId), ValueComparingOperator.Equal, filter.MenuItemId)
             }, LogicalOperator.AND)
                        ));
         }
     }
 }