/// <summary>Add the transformation step to the transformation chain.</summary> public TransformationBuilder<TSource, TDestination> Apply(AbstractTransformation<TSource, TDestination> transformation) { ArgGuard.NotNull(transformation, nameof(transformation)); Transformations.Add(transformation); return this; }
/// <summary>Add the specified isolated transformation step to the transformation chain if the specified condition returns true.</summary> /// <param name="condition">The condition function that defines whether to apply the specified transformation. It's evaluated in run-time when the /// transformation is going.</param> /// <param name="transformation">The transformation to apply.</param> public TransformationBuilder<TSource, TDestination> IfApplyIsolated(Func<TSource, TDestination, TransformationContext, bool> condition, AbstractTransformation<TSource, TDestination> transformation) { ArgGuard.NotNull(condition, nameof(condition)); ArgGuard.NotNull(transformation, nameof(transformation)); Transformations.Add(new ConditionalTransformer<TSource, TDestination>(condition, transformation.Transform, true)); return this; }
/// <summary>Add the isolated transformation step to the transformation chain.</summary> public TransformationBuilder<TSource, TDestination> ApplyIsolated(AbstractTransformation<TSource, TDestination> transformation, bool? keepInitialDestination = null) { ArgGuard.NotNull(transformation, nameof(transformation)); transformation.IsIsolatedResult = true; transformation.KeepInitialDestination = keepInitialDestination ?? !Configuration.IsolateInitialDestination; Transformations.Add(transformation); return this; }