public static IReliableQbservable <R> SelectMany <T, R>(this IReliableQbservable <T> source, Expression <Func <T, IReliableQbservable <R> > > resultSelector) { return(source.Provider.CreateQbservable <R>( Expression.Call( ((MethodInfo)MethodInfo.GetCurrentMethod()).MakeGenericMethod(typeof(T), typeof(R)), source.Expression, resultSelector ) )); }
public static IReliableQbservable <T> Where <T>(this IReliableQbservable <T> source, Expression <Func <T, bool> > predicate) { return(source.Provider.CreateQbservable <T>( Expression.Call( ((MethodInfo)MethodInfo.GetCurrentMethod()).MakeGenericMethod(typeof(T)), source.Expression, predicate ) )); }
internal IReliableQubscription Subscribe <T>(IReliableQbservable <T> observable, IReliableQbserver <T> observer, Uri subscriptionUri, object state) { var subscribe = Expression.Parameter(typeof(Func <IReliableQbservable <T>, IReliableQbserver <T>, IReliableQubscription>), Constants.SubscribeUri); var expression = Expression.Invoke(subscribe, observable.Expression, observer.Expression); var normalized = _expressionServices.Normalize(expression); var subscription = new KnownReliableQubscription(normalized, subscriptionUri, this); CreateSubscription(subscription, state); return(subscription); }