Пример #1
0
 public static IOperation <T> TraceSafe <T>(this IOperation <T> source, Action <T> handler)
 {
     try
     {
         return(new Operation <T>(source.AsObservable().Do(handler)));
     }
     catch
     {
         //swallow
         return(source);
     }
 }
Пример #2
0
 public static IOperation <TResult> ContinueWith <TSource, TResult>(this IOperation <TSource> source, Func <TSource, IOperation <TResult> > operation)
 {
     return(new Operation <TResult>(source.AsObservable().SelectMany(async(x) => await operation(x).ExecuteAsync())));
 }
Пример #3
0
 public static IOperation <TResult> ContinueWith <TSource, TResult>(this IOperation <TSource> source, Func <TSource, Task <TResult> > selector)
 {
     return(new Operation <TResult>(source.AsObservable().SelectMany(selector)));
 }
Пример #4
0
 public static IOperation <T> ContinueWith <T>(this IOperation <T> source, Func <T, Task> selector)
 {
     return(new Operation <T>(source.AsObservable().Tap(selector)));
 }
Пример #5
0
 public static IOperation <TResult> Select <TSource, TResult>(this IOperation <TSource> source, Func <TSource, TResult> selector)
 {
     return(new Operation <TResult>(source.AsObservable().Select(selector)));
 }
Пример #6
0
 public static IOperation <T> Retry <T>(this IOperation <T> source, IRetryStrategy retryStrategy)
 => new Operation <T>(retryStrategy.Apply(source.AsObservable()));
Пример #7
0
 public static IOperation <T> Retry <T>(this IOperation <T> source, int retryCount)
 => new Operation <T>(source.AsObservable().Retry(retryCount));
Пример #8
0
 public static IOperation <IResult <TSource> > Catch <TSource, TException>(this IOperation <IResult <TSource> > source, Func <TException, IResult <TSource> > handler)
     where TException : Exception
 {
     return(new Operation <IResult <TSource> >(
                source.AsObservable().Catch((TException e) => Observable.Return(handler(e)))));
 }
Пример #9
0
 public static IOperation <TSource> Catch <TSource, TException>(this IOperation <TSource> source, Func <TException, IObservable <TSource> > handler)
     where TException : Exception
 {
     return(new Operation <TSource>(source.AsObservable().Catch(handler)));
 }
Пример #10
0
 public static IOperation <T> Log <T, TException>(this IOperation <T> source, Action <TException> handler)
     where TException : Exception
 {
     return(new Operation <T>(source.AsObservable().Log(handler)));
 }
Пример #11
0
 public static IOperation <T> Trace <T>(this IOperation <T> source, Action <T> handler)
 {
     return(new Operation <T>(source.AsObservable().Do(handler)));
 }
Пример #12
0
 public static IOperation <IResult <TResult> > Select <TSource, TResult>(this IOperation <IResult <TSource> > source, Func <TSource, TResult> selector)
 {
     return(new Operation <IResult <TResult> >(source.AsObservable().Select(x => Result.FromInvocation(() => selector(x.Value)))));
 }
Пример #13
0
 public static IOperation <IResult <T> > ContinueWith <T>(this IOperation <IResult <T> > source, Func <T, Task> selector)
 {
     return(new Operation <IResult <T> >(source.AsObservable().Tap(x => Operation.CreateResult(selector, x.Value))));
 }