public override IEnumerable <IResult> Execute() { bool retry = true; while (retry) { var warning = new Warning(Properties.Demo.LoremIpsum, Answer.Retry, Answer.Ignore, Answer.Abort); yield return(warning.AsResult() .CancelOnResponse(Answer.Abort) .WhenCancelled().Invoke(() => retry = false) .WhenCancelled().Execute(new LogResult("Aborted").AsCoroutine)); retry = warning.GivenResponse == Answer.Retry; yield return(LogResponse(warning)); } }