public ExceptionHandlerBuilder(IBuildableFlow sourceFlow, IntegrationFlowBuilder <TBody> builder, IServiceProvider serviceProvider) { this.SourceFlow = sourceFlow ?? throw new ArgumentNullException(nameof(sourceFlow)); this.Builder = builder ?? throw new ArgumentNullException(nameof(builder)); this.ServiceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); this.ExceptionHander = new ExceptionHandler(this.ServiceProvider.GetRequiredService <ILogger <ExceptionHandler> >()); }
static async Task Main(string[] args) { Console.WriteLine("Hello World!"); var serviceCollection = new ServiceCollection() .AddLogging((x) => { x.AddConsole(); }) .BuildServiceProvider(); var flow = new IntegrationFlowBuilder <int>(serviceCollection) .Translate((x) => "A") .ExceptionHandler() .AddExceptionHandler <InvalidOperationException>((exc, integration) => false) .EndExceptionHandler() .Filter((integration) => integration.Id != null) .AddStepToExecute((x) => { }) .EndFilter() .Choice() .When(x => x.Id != null) .AddChoiceStep((x) => { System.Console.WriteLine("choice 1"); }) .EndWhen() .Default() .AddDefaultStep((x) => { System.Console.WriteLine("Default choice"); }) .EndDefault() .EndChoice() .WireTap() .Log((x, y) => y.LogInformation("This is only a test!")) .Build(); var result = await flow.CreateIntegration(1); if (result == null) { } }
public static IntegrationFlowBuilder <TBody> WireTap <TBody>(IBuildableFlow sourceFlow, IntegrationFlowBuilder <TBody> builder, IServiceProvider serviceProvider) { var wireTapStep = new WireTapStep(serviceProvider.GetRequiredService <ILoggerFactory>().CreateLogger <WireTapStep>()); sourceFlow.AddStep(wireTapStep); return(builder); }
public static IntegrationFlowBuilder <TBody> Log <TBody>(IBuildableFlow sourceFlow, IntegrationFlowBuilder <TBody> builder, Action <Integration <TBody>, ILogger> action, IServiceProvider serviceProvider) { var logStep = new LogStep <TBody>(serviceProvider.GetRequiredService <ILoggerFactory>() .CreateLogger(typeof(LogStep <TBody>)), action); sourceFlow.AddStep(logStep); return(builder); }
private ChoiceBuilder(IBuildableFlow sourceFlow, IntegrationFlowBuilder <TBody> builder) { this.SourceFlow = sourceFlow; this.Builder = builder; }
public static ChoiceBuilder <TBody> Choice(IBuildableFlow sourceFlow, IntegrationFlowBuilder <TBody> builder) { return(new ChoiceBuilder <TBody>(sourceFlow, builder)); }
public static IntegrationFlowBuilder <TFrom> Translate(Func <TFrom, TTo> translator, IBuildableFlow sourceFlow, IntegrationFlowBuilder <TFrom> sourceBuilder) { var generatedStep = new TranslatorStep <TFrom, TTo>(translator); sourceFlow.AddStep(generatedStep); return(sourceBuilder); }
public ChoiceBuilderTests() { this.ServiceProvider = new Mock <IServiceProvider>(); this.FlowBuilder = new IntegrationFlowBuilder <string>(this.ServiceProvider.Object); }