public static IObservable <T> WhenExecute <T>(this SingleChoiceAction singleChoiceAction, Func <SingleChoiceActionExecuteEventArgs, IObservable <T> > retriedExecution) => singleChoiceAction.WhenExecute().SelectMany(retriedExecution).Retry(() => singleChoiceAction.Application);
public static IObservable <T> WhenExecute <T>(this SingleChoiceAction singleChoiceAction, Func <SingleChoiceActionExecuteEventArgs, IObservable <T> > retriedExecution) => singleChoiceAction.WhenExecute().SelectMany(retriedExecution).Retry(() => singleChoiceAction.Application).TakeUntilDeactivated(singleChoiceAction.Controller);