public static IServiceCollection AddStatsDTelemetry(this IServiceCollection services, IConfiguration configuration) { var statsDConfig = new StatisticsReporterConfiguration(); configuration.GetSection("StatsD").Bind(statsDConfig); services.AddTransient <IStatisticsReporter, StatisticsReporter>() .AddSingleton(statsDConfig); return(services); }
public static IContainer Initialize(IConfigurationRoot configuration) { var senderSettings = new PatSenderSettings(); configuration.GetSection("PatLite:Sender").Bind(senderSettings); var subscriberConfiguration = new SubscriberConfiguration(); configuration.GetSection("PatLite:Subscriber").Bind(subscriberConfiguration); var statisticsConfiguration = new StatisticsReporterConfiguration(); configuration.GetSection("StatsD").Bind(statisticsConfiguration); var dataProtectionConfiguration = new DataProtectionConfiguration(); configuration.GetSection("DataProtection").Bind(dataProtectionConfiguration); var statsReporter = new StatisticsReporter(statisticsConfiguration); var loggerName = "IntegrationLogger"; Logging.InitLogger(loggerName); var container = new Container(x => { x.AddRegistry(new PatLiteRegistry(new PatLiteOptions { SubscriberConfiguration = subscriberConfiguration, RegisterDefaultLoggerWithName = "Pat" })); }); container.Configure(x => { x.Scan(scanner => { scanner.WithDefaultConventions(); scanner.AssemblyContainingType <IMessagePublisher>(); }); x.For <IStatisticsReporter>().Use(statsReporter); x.For <ICorrelationIdProvider>().Use(new LiteralCorrelationIdProvider(Guid.NewGuid().ToString())); x.For <IMessageDeserialiser>().Use(ctx => ctx.GetInstance <MessageContext>().MessageEncrypted ? new EncryptedMessageDeserialiser(ctx.GetInstance <DataProtectionConfiguration>()) : (IMessageDeserialiser) new NewtonsoftMessageDeserialiser()); x.For <PatSenderSettings>().Use(senderSettings); x.For <MessageReceivedNotifier <TestEvent> >().Use(new MessageReceivedNotifier <TestEvent>()); x.For <DataProtectionConfiguration>().Use(dataProtectionConfiguration); x.For <ILog>().Use(LogManager.GetLogger(loggerName, loggerName)); x.For <ILoggerFactory>().Use(context => new LoggerFactory()); }); return(container); }
public static IServiceCollection Initialize(IConfigurationRoot configuration) { var senderSettings = new PatSenderSettings(); configuration.GetSection("PatLite:Sender").Bind(senderSettings); var subscriberConfiguration = new SubscriberConfiguration(); configuration.GetSection("PatLite:Subscriber").Bind(subscriberConfiguration); var statisticsConfiguration = new StatisticsReporterConfiguration(); configuration.GetSection("StatsD").Bind(statisticsConfiguration); var dataProtectionConfiguration = new DataProtectionConfiguration(); configuration.GetSection("DataProtection").Bind(dataProtectionConfiguration); var loggerName = "IntegrationLogger-DotNetIoC"; Logging.InitLogger(loggerName); var serviceCollection = new ServiceCollection() .AddSingleton(senderSettings) .AddSingleton(subscriberConfiguration) .AddSingleton(statisticsConfiguration) .AddSingleton(dataProtectionConfiguration) .AddSingleton <IMessageGenerator, MessageGenerator>() .AddSingleton <MessageReceivedNotifier <TestEvent> >() .AddTransient <IEncryptedMessagePublisher>( provider => new EncryptedMessagePublisher( provider.GetRequiredService <IMessageSender>(), provider.GetRequiredService <DataProtectionConfiguration>(), new MessageProperties(Guid.NewGuid().ToString()))) .AddTransient <IMessagePublisher>( provider => new MessagePublisher( provider.GetRequiredService <IMessageSender>(), provider.GetRequiredService <IMessageGenerator>(), new MessageProperties(Guid.NewGuid().ToString()))) .AddTransient <IMessageSender, MessageSender>() .AddTransient <IStatisticsReporter, StatisticsReporter>() .AddLogging(b => b.AddDebug()) .AddTransient <ILog>(s => LogManager.GetLogger(loggerName, loggerName)) .AddPatLite(new PatLiteOptions { MessageDeserialiser = provider => provider.GetService <MessageContext>().MessageEncrypted ? new EncryptedMessageDeserialiser(provider.GetService <DataProtectionConfiguration>()) : (IMessageDeserialiser) new NewtonsoftMessageDeserialiser(), SubscriberConfiguration = subscriberConfiguration }) .AddHandlersFromAssemblyContainingType <DotNetIoC>(); return(serviceCollection); }
public IServiceProvider InitialiseIoC(IServiceCollection serviceCollection) { var statisticsConfiguration = new StatisticsReporterConfiguration(); _configuration.GetSection("StatsD").Bind(statisticsConfiguration); _statisticsReporter = Substitute.For <IStatisticsReporter>(); var serviceProvider = serviceCollection .AddSingleton(statisticsConfiguration) .AddSingleton <MessageReceivedNotifier <TestEvent> >() .AddSingleton(_statisticsReporter) .AddHandlersFromAssemblyContainingType <DotNetIoC>() .AddLogging(b => b.AddDebug()) .BuildServiceProvider(); return(serviceProvider); }
public IContainer InitialiseIoC(Container container) { var statisticsConfiguration = new StatisticsReporterConfiguration(); _configuration.GetSection("StatsD").Bind(statisticsConfiguration); _statisticsReporter = Substitute.For <IStatisticsReporter>(); var loggerName = "IntegrationLogger-StructureMap"; Logging.InitLogger(loggerName); container.Configure(x => { x.Scan(scanner => { scanner.WithDefaultConventions(); }); x.For <IStatisticsReporter>().Use(_statisticsReporter); x.For <MessageReceivedNotifier <TestEvent> >().Use(new MessageReceivedNotifier <TestEvent>()); }); return(container); }