Exemple #1
0
        protected ResultOperatorExpressionNodeBase(
            MethodCallExpressionParseInfo parseInfo, LambdaExpression optionalPredicate, LambdaExpression optionalSelector)
            : base(parseInfo)
        {
            if (optionalPredicate != null && optionalPredicate.Parameters.Count != 1)
            {
                throw new ArgumentException("OptionalPredicate must have exactly one parameter.", "optionalPredicate");
            }

            if (optionalSelector != null && optionalSelector.Parameters.Count != 1)
            {
                throw new ArgumentException("OptionalSelector must have exactly one parameter.", "optionalSelector");
            }

            if (optionalPredicate != null)
            {
                Source = new WhereExpressionNode(parseInfo, optionalPredicate);
            }

            if (optionalSelector != null)
            {
                var newParseInfo = new MethodCallExpressionParseInfo(parseInfo.AssociatedIdentifier, Source, parseInfo.ParsedExpression);
                Source = new SelectExpressionNode(newParseInfo, optionalSelector);
            }

            ParsedExpression = parseInfo.ParsedExpression;
        }
    protected ResultOperatorExpressionNodeBase (
        MethodCallExpressionParseInfo parseInfo, LambdaExpression optionalPredicate, LambdaExpression optionalSelector)
        : base (parseInfo)
    {
      if (optionalPredicate != null && optionalPredicate.Parameters.Count != 1)
        throw new ArgumentException ("OptionalPredicate must have exactly one parameter.", "optionalPredicate");

      if (optionalSelector != null && optionalSelector.Parameters.Count != 1)
        throw new ArgumentException ("OptionalSelector must have exactly one parameter.", "optionalSelector");

      if (optionalPredicate != null)
        Source = new WhereExpressionNode (parseInfo, optionalPredicate);

      if (optionalSelector != null)
      {
        var newParseInfo = new MethodCallExpressionParseInfo (parseInfo.AssociatedIdentifier, Source, parseInfo.ParsedExpression);
        Source = new SelectExpressionNode (newParseInfo, optionalSelector);
      }

      ParsedExpression = parseInfo.ParsedExpression;
    }