Exemplo n.º 1
0
 public static IObservable <TSource> HandleErrors <TSource, TException>(this IObservable <TSource> source, XpandCmdlet cmdlet, object targetObject, SynchronizationContext context = null) where TException : Exception
 {
     context ??= SynchronizationContext.Current;
     targetObject ??= cmdlet.ActivityName;
     return(source.ObserveOn(context)
            .Catch <TSource, TException>(exception => {
         var errorAction = cmdlet.ErrorAction();
         if (errorAction == ActionPreference.SilentlyContinue)
         {
             return Observable.Return(default(TSource));
         }
         var errorRecord = new ErrorRecord(exception, exception.GetHashCode().ToString(), ErrorCategory.InvalidOperation, targetObject);
         cmdlet.WriteError(errorRecord);
         if (errorAction == ActionPreference.Stop)
         {
             return Observable.Throw <TSource>(exception);
         }
         if (errorAction == ActionPreference.Ignore || errorAction == ActionPreference.Continue)
         {
             return Observable.Empty <TSource>();
         }
         throw new NotImplementedException($"{errorAction}");
     }));
 }
Exemplo n.º 2
0
 public static IObservable <TSource> HandleErrors <TSource>(this IObservable <TSource> source, XpandCmdlet cmdlet, object targetObject = null, SynchronizationContext context = null)
 {
     context ??= SynchronizationContext.Current;
     return(source.HandleErrors <TSource, Exception>(cmdlet, targetObject, context));
 }