Esempio n. 1
0
        public static void AddRin(this IServiceCollection services, Action <RinOptions> configure = null)
        {
            var options = new RinOptions();

            configure?.Invoke(options);

            services.AddHttpContextAccessor();

            var eventBus          = new MessageEventBus <RequestEventMessage>();
            var eventBusStoreBody = new MessageEventBus <StoreBodyEventMessage>();
            var transformerSet    = new BodyDataTransformerSet(
                new BodyDataTransformerPipeline(options.Inspector.RequestBodyDataTransformers),
                new BodyDataTransformerPipeline(options.Inspector.ResponseBodyDataTransformers)
                );

            // Other services
            services.AddSingleton <BodyDataTransformerSet>(transformerSet);
            services.AddSingleton <IRecordStorage>(options.RequestRecorder.StorageFactory);
            services.AddSingleton <IMessageEventBus <RequestEventMessage> >(eventBus);
            services.AddSingleton <IMessageEventBus <StoreBodyEventMessage> >(eventBusStoreBody);
            services.AddSingleton <RinOptions>(options);
            services.AddSingleton <RinChannel>();

            // IMessageSubscriber<RequestEventMessage> services
            services.AddSingleton <IMessageSubscriber <RequestEventMessage> >(x => new Rin.Hubs.RinCoreHub.MessageSubscriber(x.GetRequiredService <RinChannel>()));

            services.AddTransient <IResourceProvider, EmbeddedZipResourceProvider>();
        }
Esempio n. 2
0
        public ChannelMiddleware(RequestDelegate next, IRecordStorage storage, RinChannel rinChannel, BodyDataTransformerSet bodyDataTransformerSet, IHostApplicationLifetime applicationLifetime)
        {
            _next = next;

            _storage                = storage;
            _rinChannel             = rinChannel;
            _bodyDataTransformerSet = bodyDataTransformerSet;

            applicationLifetime.ApplicationStopping.Register(() => _rinChannel.Dispose());
        }
Esempio n. 3
0
 public RinCoreHub(IRecordStorage storage, RinChannel rinChannel, BodyDataTransformerSet bodyDataTransformerSet)
 {
     _storage                = storage;
     _rinChannel             = rinChannel;
     _bodyDataTransformerSet = bodyDataTransformerSet;
 }
Esempio n. 4
0
 public RinCoreHub(IRecordStorage storage, BodyDataTransformerSet bodyDataTransformerSet)
 {
     _storage = storage;
     _bodyDataTransformerSet = bodyDataTransformerSet;
 }