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); } }
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()))); }
public static IOperation <TResult> ContinueWith <TSource, TResult>(this IOperation <TSource> source, Func <TSource, Task <TResult> > selector) { return(new Operation <TResult>(source.AsObservable().SelectMany(selector))); }
public static IOperation <T> ContinueWith <T>(this IOperation <T> source, Func <T, Task> selector) { return(new Operation <T>(source.AsObservable().Tap(selector))); }
public static IOperation <TResult> Select <TSource, TResult>(this IOperation <TSource> source, Func <TSource, TResult> selector) { return(new Operation <TResult>(source.AsObservable().Select(selector))); }
public static IOperation <T> Retry <T>(this IOperation <T> source, IRetryStrategy retryStrategy) => new Operation <T>(retryStrategy.Apply(source.AsObservable()));
public static IOperation <T> Retry <T>(this IOperation <T> source, int retryCount) => new Operation <T>(source.AsObservable().Retry(retryCount));
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))))); }
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))); }
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))); }
public static IOperation <T> Trace <T>(this IOperation <T> source, Action <T> handler) { return(new Operation <T>(source.AsObservable().Do(handler))); }
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))))); }
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)))); }