public static FlowElementResult Error <TResult, TError>(this IFlowElementExecute elementExecute, [NotNull] TError error, [NotNull] TResult result) { return(new FlowErrorResult { ErrorObject = error, Result = result }); }
private static async Task <CanExecuteResult> CheckCanExecuteAsync(IFlowElementExecute elementExecute, object currentInput, FlowState state) { try { if (elementExecute is IFlowElementCanExecute canExecute) { return(await canExecute.CanExecuteAsync(currentInput, state)); } return(CanExecuteResult.Continue); } catch (TargetInvocationException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
public static FlowElementResult Success <TResult>(this IFlowElementExecute elementExecute, [NotNull] TResult result) { return(new FlowSuccessResult { Result = result }); }
public static FlowElementResult Restart <TResult>(this IFlowElementExecute elementExecute, [NotNull] TResult result) { return(new FlowRestartResult { Result = result }); }
public static FlowElementResult GoToEnd <TResult>(this IFlowElementExecute elementExecute, [NotNull] TResult result) { return(new FlowGoToEndResult { Result = result }); }
public static FlowElementResult Error <TResult>(this IFlowElementExecute elementExecute, [NotNull] TResult error) { return(new FlowErrorResult { ErrorObject = error }); }
public static IFlowElementExecute MapOnError(this IFlowElementExecute from, Func <FlowElementResult, object, FlowState, Task <object> > map) { return(new MapFlowElement(map, from, typeof(FlowErrorResult))); }
/// <summary> /// Execute the step you are mapping and do something on its result /// </summary> /// <param name="from">The step for which the value is being mapped</param> /// <param name="map">Map Action parameters are The FlowElementResult, the argument object, and flow state</param> /// <returns></returns> public static IFlowElementExecute Map(this IFlowElementExecute from, Func <FlowElementResult, object, FlowState, Task <object> > map) { return(new MapFlowElement(map, from, null)); }
public MapFlowElement(Func <FlowElementResult, object, FlowState, Task <object> > map, IFlowElementExecute decorated, Type mapOn) { _map = map; _decorated = decorated; _mapOn = mapOn; }
public LoggingExecuteDecorator(IFlowElementExecute element) { _logger = LogManager.GetLogger(element.GetType()); _element = element; }