private static ServiceProvider InitialiseIoC() { var connection = "Endpoint=sb://namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOURKEY"; var topicName = "pat"; var subscriberConfiguration = new SubscriberConfiguration { ConnectionStrings = new[] { connection }, TopicName = topicName, SubscriberName = "PatExampleSubscriber", UseDevelopmentTopic = false }; var patLiteOptions = new PatLiteOptionsBuilder(subscriberConfiguration) .DefineMessagePipeline .With <NonTransientMessageFailureProcessingBehaviour>() .With <MonitoringMessageProcessingBehaviour>() .With <InvokeHandlerBehaviour>() .Build(); var serviceProvider = new ServiceCollection() .AddPatLite(patLiteOptions) .AddLogging(b => b.AddConsole()) .AddTransient <IStatisticsReporter, StatisticsReporter>() .AddSingleton(new StatisticsReporterConfiguration()) .AddHandlersFromAssemblyContainingType <FooHandler>() .BuildServiceProvider(); return(serviceProvider); }
private static ServiceProvider InitialiseIoC() { var connection = "Endpoint=sb://namespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOURKEY"; var topicName = "pat"; var subscriberConfiguration = new SubscriberConfiguration { ConnectionStrings = new[] { connection }, TopicName = topicName, SubscriberName = "PatExampleSubscriber", UseDevelopmentTopic = false }; var patOptions = new PatLiteOptionsBuilder(subscriberConfiguration) .UseDefaultPipelinesWithCircuitBreaker( sp => { var monitoring = sp.GetRequiredService <CircuitBreakerMonitoring>(); return(new CircuitBreakerBatchProcessingBehaviour.CircuitBreakerOptions( circuitTestIntervalInSeconds: 30, shouldCircuitBreak: IsCircuitBreakingException) { CircuitBroken = (sender, args) => monitoring.CircuitBroken(), CircuitReset = (sender, args) => monitoring.CircuitReset(), CircuitTest = (sender, args) => monitoring.CircuitTest() }); }) .Build(); var serviceProvider = new ServiceCollection() .AddPatLite(patOptions) .AddLogging(b => b.AddConsole()) .AddTransient <IStatisticsReporter, StatisticsReporter>() .AddSingleton(new StatisticsReporterConfiguration()) .AddHandlersFromAssemblyContainingType <FooHandler>() .AddSingleton <CircuitBreakerMonitoring>() .BuildServiceProvider(); return(serviceProvider); }