private Expression GetPredicate(MethodCallExpression methodCallExpression, GroupByShaperExpression groupByShaperExpression) { if (methodCallExpression.Arguments.Count == 1) { return(null); } if (methodCallExpression.Arguments.Count == 2) { var selectorLambda = methodCallExpression.Arguments[1].UnwrapLambdaFromQuote(); return(ReplacingExpressionVisitor.Replace( selectorLambda.Parameters[0], groupByShaperExpression.ElementSelector, selectorLambda.Body)); } throw new InvalidOperationException(CoreStrings.TranslationFailed(methodCallExpression.Print())); }
private Expression GetSelector(MethodCallExpression methodCallExpression, GroupByShaperExpression groupByShaperExpression) { if (methodCallExpression.Arguments.Count == 1) { return(groupByShaperExpression.ElementSelector); } if (methodCallExpression.Arguments.Count == 2) { var selectorLambda = methodCallExpression.Arguments[1].UnwrapLambdaFromQuote(); return(ReplacingExpressionVisitor.Replace( selectorLambda.Parameters[0], groupByShaperExpression.ElementSelector, selectorLambda.Body)); } throw new InvalidOperationException(); }