public List <Criterion> Extract() { var result = new List <Criterion>(); foreach (var ex in GetUnitExpressions(Criteria.Body)) { var condition = Criterion.From(ex); if (condition == null || (condition as BinaryCriterion)?.IsConvertedCompletely == false) { if (ThrowOnNonConversion) { throw new Exception("Failed to extract a criterion from expression: " + ex); } NotConverted.Add(ex); } result.Add(condition); } return(result); }
static Criterion CreateCriterion(MethodCallExpression expression) => Criterion.From(expression, throwOnError: false);