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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }