Exemplo n.º 1
0
 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> >());
 }
Exemplo n.º 2
0
        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)
            {
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 private ChoiceBuilder(IBuildableFlow sourceFlow, IntegrationFlowBuilder <TBody> builder)
 {
     this.SourceFlow = sourceFlow;
     this.Builder    = builder;
 }
Exemplo n.º 6
0
 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);
        }
Exemplo n.º 8
0
 public ChoiceBuilderTests()
 {
     this.ServiceProvider = new Mock <IServiceProvider>();
     this.FlowBuilder     = new IntegrationFlowBuilder <string>(this.ServiceProvider.Object);
 }