Exemple #1
0
 public static FlowElementResult Error <TResult, TError>(this IFlowElementExecute elementExecute, [NotNull] TError error,
                                                         [NotNull] TResult result)
 {
     return(new FlowErrorResult {
         ErrorObject = error, Result = result
     });
 }
Exemple #2
0
 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;
     }
 }
Exemple #3
0
 public static FlowElementResult Success <TResult>(this IFlowElementExecute elementExecute, [NotNull] TResult result)
 {
     return(new FlowSuccessResult {
         Result = result
     });
 }
Exemple #4
0
 public static FlowElementResult Restart <TResult>(this IFlowElementExecute elementExecute, [NotNull] TResult result)
 {
     return(new FlowRestartResult {
         Result = result
     });
 }
Exemple #5
0
 public static FlowElementResult GoToEnd <TResult>(this IFlowElementExecute elementExecute, [NotNull] TResult result)
 {
     return(new FlowGoToEndResult {
         Result = result
     });
 }
Exemple #6
0
 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;
 }