/// <summary> /// Execute logic with error handlers. /// </summary> /// <param name="input"></param> /// <returns></returns> protected new Option <TOutput> Invoke(TInput input) { try { return(Option <TOutput> .Create(base.Invoke(input))); } catch (Exception e) { if (!_errorHandlerStrategy.TryHandle(e, CurrentOperationId)) { throw; } } finally { Finally(input); } return(Option <TOutput> .Empty); }
/// <summary> /// Execute logic with error handlers. /// </summary> /// <param name="input"></param> /// <returns></returns> protected Option <TOutput> Invoke(TInput input) { try { return(Option <TOutput> .Create(Try(input))); } catch (Exception e) { if (!_errorHandlerStrategy.TryHandle(e, Guid.NewGuid())) { throw; } } finally { Finally(input); } return(Option <TOutput> .Empty); }