<PackageReference Include="System.Reactive" Version="6.0.0-preview.16" />
    
    
	
	
		
		
		
	 
	
	
        
                
                QueryablePattern<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6>
                
                
Represents a join pattern over six observable sequences.
            
                 
                
using System.
Linq.
Expressions;
using System.
Reactive.
Linq;
using System.
Reflection;
namespace System.
Reactive.
Joins
{
    
public class QueryablePattern<
TSource1, 
TSource2, 
TSource3, 
TSource4, 
TSource5, 
TSource6> : 
QueryablePattern
    {
        
internal QueryablePattern(
Expression expression)
            : 
base(
expression)
        {
        }
        
public QueryablePattern<
TSource1, 
TSource2, 
TSource3, 
TSource4, 
TSource5, 
TSource6, 
TSource7> 
And<
TSource7>(
IObservable<
TSource7> 
other)
        {
            
if (
other == 
null)
                
throw new ArgumentNullException(
"other");
            
MethodInfo method = 
typeof(
QueryablePattern<
TSource1, 
TSource2, 
TSource3, 
TSource4, 
TSource5, 
TSource6>).
GetMethod(
"And").
MakeGenericMethod(
typeof(
TSource7));
            
return new QueryablePattern<
TSource1, 
TSource2, 
TSource3, 
TSource4, 
TSource5, 
TSource6, 
TSource7>((
Expression)
Expression.
Call(
base.
Expression, 
method, 
Qbservable.
GetSourceExpression<
TSource7>(
other)));
        }
        
public QueryablePlan<
TResult> 
Then<
TResult>(
Expression<
Func<
TSource1, 
TSource2, 
TSource3, 
TSource4, 
TSource5, 
TSource6, 
TResult>> 
selector)
        {
            
if (
selector == 
null)
                
throw new ArgumentNullException(
"selector");
            
MethodInfo method = 
typeof(
QueryablePattern<
TSource1, 
TSource2, 
TSource3, 
TSource4, 
TSource5, 
TSource6>).
GetMethod(
"Then").
MakeGenericMethod(
typeof(
TResult));
            
return new QueryablePlan<
TResult>((
Expression)
Expression.
Call(
base.
Expression, 
method, 
selector));
        }
    }
}