private TryResult Try( IBotOperation operation, ExecutionContext context, CancellationToken token) { try { base.InnerBot.Execute(operation, context, token); return(TryResult.Succeeded()); } catch (Exception exception) { if (base.Configuration.HandlesException(exception)) { return(TryResult.Failed(exception)); } throw; } }
private async Task <TryResult> TryAsync( IAsyncBotOperation operation, ExecutionContext context, CancellationToken token) { try { await base.InnerBot.ExecuteAsync(operation, context, token) .ConfigureAwait(context.BotPolicyConfiguration.ContinueOnCapturedContext); return(TryResult.Succeeded()); } catch (Exception exception) { if (base.Configuration.HandlesException(exception)) { return(TryResult.Failed(exception)); } throw; } }
private TryResult <TResult> HandleResult(TResult result) => base.Configuration.AcceptsResult(result) ? TryResult <TResult> .Succeeded(result) : TryResult <TResult> .Failed(result : result);