public IEnumerable <OrderLine> Find(Expression <Func <OrderLine, bool> > predicate, OrderLineIncludes includes = null)
 {
     return(_context.OrderLines
            .AddIncludes(includes)
            .Where(predicate)
            .AsEnumerable());
 }
        /// <summary>
        /// Adds the DbContext includes based on the booleans set in the Includes object
        /// </summary>
        /// <param name="query"></param>
        /// <param name="includes"></param>
        /// <returns></returns>
        public static IQueryable <OrderLine> AddIncludes(this IQueryable <OrderLine> query, OrderLineIncludes includes)
        {
            if (includes == null)
            {
                return(query);
            }

            if (includes.OrderCustomer)
            {
                query = query.Include(i => i.Order).ThenInclude(o => o.Customer);
            }

            if (includes.ArticleProduct)
            {
                query = query.Include(i => i.Article).ThenInclude(a => a.Product);
            }

            return(query);
        }
 public OrderLine Get(Guid id, OrderLineIncludes includes = null)
 {
     return(_context.OrderLines
            .AddIncludes(includes)//Add the where clause
            .FirstOrDefault(i => i.Id == id));
 }