public linq.Expression <Func <IEvaluationContext, bool> > GetExpression()
 {
     linq.Expression <Func <IEvaluationContext, bool> > retVal = AllAny.IsAll ? PredicateBuilder.True <IEvaluationContext>() : PredicateBuilder.False <IEvaluationContext>();
     foreach (var adaptor in this.Children.OfType <IExpressionAdaptor>())
     {
         var expression = adaptor.GetExpression();
         if (!AllAny.IsAll)
         {
             retVal = retVal.Or(expression);
         }
         else
         {
             retVal = retVal.And(expression);
         }
     }
     return(retVal);
 }
        public System.Linq.Expressions.Expression <Func <IEvaluationContext, bool> > GetExpression()
        {
            linq.Expression <Func <IEvaluationContext, bool> > retVal = ((IExpressionAdaptor)this.Children[0]).GetExpression();
            foreach (var adaptor in this.Children.OfType <IExpressionAdaptor>())
            {
                var expression = adaptor.GetExpression();
                if (adaptor is PriceListAssignmentExpressionBlock)
                {
                    expression = ((PriceListAssignmentExpressionBlock)adaptor).ConditionBlock.GetExpression();
                    if (!((PriceListAssignmentExpressionBlock)adaptor).ConditionBlock.AndOr.IsAnd)
                    {
                        retVal = retVal.Or(expression);
                    }
                    else
                    {
                        retVal = retVal.And(expression);
                    }
                }
                //else
                //	retVal = retVal.And(expression);
            }

            return(retVal);
        }