public static ITransformationBuilder <TContext> DropOrigin <TContext>(
            this ITransformationBuilder <TContext> transformationBuilder)
            where TContext : IContext, new()
        {
            transformationBuilder.Base.Handlers.Add(async origin =>
            {
                if (transformationBuilder.Condition(origin))
                {
                    var transformed = await transformationBuilder.Transformation(origin);

                    return(false, true, transformed);
                }

                return(false, false, default(TContext));
            });

            return(transformationBuilder);
        }
        public static ITransformationBuilder <TContext> Transform <TContext>(
            this ITransformationBuilder <TContext> transformationBuilder,
            Func <TContext, TContext, Task> transformation)
            where TContext : IContext, new()
        {
            Func <TContext, Task <TContext> > transformationFactory =
                async(TContext origin) =>
            {
                var transformedContext = new TContext();
                transformedContext.Services = origin.Services;

                await transformation(origin, transformedContext);

                return(transformedContext);
            };

            transformationBuilder.Transformation = transformationFactory;

            return(transformationBuilder);
        }
Exemplo n.º 3
0
 public static ITransformationBuilder <int, char> OnEscapeSymbol(this ITransformationBuilder <int, char> builder, int newState, TriggeringAction <int, char> triggeringAction)
 => builder.OnValue(CharCategoryHelper.ESCAPE_CHAR, newState, triggeringAction);
Exemplo n.º 4
0
 public static ITransformationBuilder <int, char> OnEscapeSymbol(this ITransformationBuilder <int, char> builder, int newState)
 => builder.OnValue(CharCategoryHelper.ESCAPE_CHAR, newState, null);
Exemplo n.º 5
0
 public static ITransformationBuilder <TState, TInput> OnValue <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, TInput triggerValue, TState newState)
 => builder.OnValue(triggerValue, newState, null);
Exemplo n.º 6
0
 public static ITransformationBuilder <int, char> OnPipeSymbolKeep(this ITransformationBuilder <int, char> builder, TriggeringAction <int, char> triggeringAction)
 => builder.OnValueKeep(CharCategoryHelper.PIPE_CHAR, triggeringAction);
Exemplo n.º 7
0
 public static ITransformationBuilder <TState, TInput> OnAlwaysKeep <TState, TInput>(this ITransformationBuilder <TState, TInput> builder)
 => builder.OnAlways(builder.ConfiguringState, null);
Exemplo n.º 8
0
 public static ITransformationBuilder <TState, TInput> OnCondition <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, TriggerCondition <TState, TInput> condition, TState newState)
 => builder.OnCondition(condition, newState, null);
Exemplo n.º 9
0
 public static ITransformationBuilder <TState, TInput> OnAlwaysKeep <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, TriggeringAction <TState, TInput> triggeringAction)
 => builder.OnAlways(builder.ConfiguringState, triggeringAction);
Exemplo n.º 10
0
 public static ITransformationBuilder <TState, TInput> OnValueKeep <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, TInput triggerValue)
 => builder.OnValue(triggerValue, builder.ConfiguringState, null);
Exemplo n.º 11
0
 public static ITransformationBuilder <TState, TInput> OnConditionKeep <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, TriggerCondition <TState, TInput> condition)
 => builder.OnCondition(condition, builder.ConfiguringState, null);
Exemplo n.º 12
0
 public static ITransformationBuilder <TState, TInput> OnAlways <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, StateEvaluator <TState, TInput> stateEvaluator)
 => builder.OnAlways(stateEvaluator, null);
Exemplo n.º 13
0
 public static ITransformationBuilder <TState, TInput> OnAlways <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, TState newState)
 => builder.OnAlways(newState, null);