public static IObservable <T> WhenExecute <T>(this ParametrizedAction action, Func <ParametrizedActionExecuteEventArgs, IObservable <T> > retriedExecution) => action.WhenExecute().SelectMany(retriedExecution).Retry(() => action.Application);
public static IObservable <T> WhenExecute <T>(this ParametrizedAction action, Func <ParametrizedActionExecuteEventArgs, IObservable <T> > retriedExecution) => action.WhenExecute().SelectMany(retriedExecution).Retry(() => action.Application).TakeUntilDeactivated(action.Controller);