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); }
public static ITransformationBuilder <int, char> OnEscapeSymbol(this ITransformationBuilder <int, char> builder, int newState, TriggeringAction <int, char> triggeringAction) => builder.OnValue(CharCategoryHelper.ESCAPE_CHAR, newState, triggeringAction);
public static ITransformationBuilder <int, char> OnEscapeSymbol(this ITransformationBuilder <int, char> builder, int newState) => builder.OnValue(CharCategoryHelper.ESCAPE_CHAR, newState, null);
public static ITransformationBuilder <TState, TInput> OnValue <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, TInput triggerValue, TState newState) => builder.OnValue(triggerValue, newState, null);
public static ITransformationBuilder <int, char> OnPipeSymbolKeep(this ITransformationBuilder <int, char> builder, TriggeringAction <int, char> triggeringAction) => builder.OnValueKeep(CharCategoryHelper.PIPE_CHAR, triggeringAction);
public static ITransformationBuilder <TState, TInput> OnAlwaysKeep <TState, TInput>(this ITransformationBuilder <TState, TInput> builder) => builder.OnAlways(builder.ConfiguringState, null);
public static ITransformationBuilder <TState, TInput> OnCondition <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, TriggerCondition <TState, TInput> condition, TState newState) => builder.OnCondition(condition, newState, null);
public static ITransformationBuilder <TState, TInput> OnAlwaysKeep <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, TriggeringAction <TState, TInput> triggeringAction) => builder.OnAlways(builder.ConfiguringState, triggeringAction);
public static ITransformationBuilder <TState, TInput> OnValueKeep <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, TInput triggerValue) => builder.OnValue(triggerValue, builder.ConfiguringState, null);
public static ITransformationBuilder <TState, TInput> OnConditionKeep <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, TriggerCondition <TState, TInput> condition) => builder.OnCondition(condition, builder.ConfiguringState, null);
public static ITransformationBuilder <TState, TInput> OnAlways <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, StateEvaluator <TState, TInput> stateEvaluator) => builder.OnAlways(stateEvaluator, null);
public static ITransformationBuilder <TState, TInput> OnAlways <TState, TInput>(this ITransformationBuilder <TState, TInput> builder, TState newState) => builder.OnAlways(newState, null);