Inheritance: ISearchEngine
 public static IObservable<string> Search_DefferedConcatingTasks(string term)
 {
     var searchEngineA = new SearchEngineA();
     var searchEngineB = new SearchEngineB();
     var resultsA = Observable.Defer(() => searchEngineA.SearchAsync(term).ToObservable());
     var resultsB = Observable.Defer(() => searchEngineB.SearchAsync(term).ToObservable());
     return resultsA
         .Concat(resultsB)
         .SelectMany(x => x);
 }
 public static IObservable<string> Search_ConcatingTasks(string term)
 {
     var searchEngineA = new SearchEngineA();
     var searchEngineB = new SearchEngineB();
     IObservable<IEnumerable<string>> resultsA = searchEngineA.SearchAsync(term).ToObservable();
     IObservable<IEnumerable<string>> resultsB = searchEngineB.SearchAsync(term).ToObservable();
     return resultsA
         .Concat(resultsB)
         .SelectMany(x => x);
 }
示例#3
0
        public static IObservable <string> Search_DefferedConcatingTasks(string term)
        {
            var searchEngineA = new SearchEngineA();
            var searchEngineB = new SearchEngineB();
            var resultsA      = Observable.Defer(() => searchEngineA.SearchAsync(term).ToObservable());
            var resultsB      = Observable.Defer(() => searchEngineB.SearchAsync(term).ToObservable());

            return(resultsA
                   .Concat(resultsB)
                   .SelectMany(x => x));
        }
示例#4
0
        public static IObservable <string> Search_ConcatingTasks(string term)
        {
            var searchEngineA = new SearchEngineA();
            var searchEngineB = new SearchEngineB();
            IObservable <IEnumerable <string> > resultsA = searchEngineA.SearchAsync(term).ToObservable();
            IObservable <IEnumerable <string> > resultsB = searchEngineB.SearchAsync(term).ToObservable();

            return(resultsA
                   .Concat(resultsB)
                   .SelectMany(x => x));
        }
示例#5
0
 public static IObservable <string> Search_WithAsyncAwait(string term)
 {
     return(Observable.Create <string>(async o =>
     {
         var searchEngineA = new SearchEngineA();
         var searchEngineB = new SearchEngineB();
         var resultsA = await searchEngineA.SearchAsync(term);
         foreach (var result in resultsA)
         {
             o.OnNext(result);
         }
         var resultsB = await searchEngineB.SearchAsync(term);
         foreach (var result in resultsB)
         {
             o.OnNext(result);
         }
         o.OnCompleted();
     }));
 }
 public static IObservable<string> Search_WithAsyncAwait(string term)
 {
     return Observable.Create<string>(async o =>
     {
         var searchEngineA = new SearchEngineA();
         var searchEngineB = new SearchEngineB();
         var resultsA = await searchEngineA.SearchAsync(term);
         foreach (var result in resultsA)
         {
             o.OnNext(result);
         }
         var resultsB = await searchEngineB.SearchAsync(term);
         foreach (var result in resultsB)
         {
             o.OnNext(result);
         }
         o.OnCompleted();
     });
 }
示例#7
0
 public static IObservable <string> Search_WithCancellation(string term)
 {
     return(Observable.Create <string>(async(o, cancellationToken) =>
     {
         var searchEngineA = new SearchEngineA();
         var searchEngineB = new SearchEngineB();
         var resultsA = await searchEngineA.SearchAsync(term);
         foreach (var result in resultsA)
         {
             cancellationToken.ThrowIfCancellationRequested();
             o.OnNext(result);
         }
         cancellationToken.ThrowIfCancellationRequested();
         var resultsB = await searchEngineB.SearchAsync(term);
         foreach (var result in resultsB)
         {
             cancellationToken.ThrowIfCancellationRequested();
             o.OnNext(result);
         }
         o.OnCompleted();
     }));
 }
 public static IObservable<string> Search_WithCancellation(string term)
 {
     return Observable.Create<string>(async (o, cancellationToken) =>
     {
         var searchEngineA = new SearchEngineA();
         var searchEngineB = new SearchEngineB();
         var resultsA = await searchEngineA.SearchAsync(term);
         foreach (var result in resultsA)
         {
             cancellationToken.ThrowIfCancellationRequested();
             o.OnNext(result);
         }
         cancellationToken.ThrowIfCancellationRequested();
         var resultsB = await searchEngineB.SearchAsync(term);
         foreach (var result in resultsB)
         {
             cancellationToken.ThrowIfCancellationRequested();
             o.OnNext(result);
         }
         o.OnCompleted();
     });
 }