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);