// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); var builder = new ContainerBuilder(); builder.RegisterInstance(Configuration).AsImplementedInterfaces().SingleInstance(); builder.RegisterModule <LibAutofacModule>(); // Register dependencies, populate the services from // the collection, and build the container. If you want // to dispose of the container at the end of the app, // be sure to keep a reference to it as a property or field. var mediatorBuilder = new MediatorBuilder() .RegisterHandlers(LibAssembly.Assembly) .ConfigureGlobalReceivePipe(x => { }) .ConfigureCommandReceivePipe(x => { }) .ConfigureRequestPipe(x => { }); builder.RegisterMediator(mediatorBuilder); builder.Populate(services); this.ApplicationContainer = builder.Build(); // Create the IServiceProvider based on the container. return(new AutofacServiceProvider(this.ApplicationContainer)); }
public static MediatorBuilder AddLatransMedaitor( this IServiceCollection services, Action <IMediatorBuilder>?configure = null ) { var builder = new MediatorBuilder(); services.AddOptions <ActivityExecutionConfigurationOptions>(); services.AddTransient <ActivityExecutionConfigurationDefaults>(); services.AddScoped <ILocalDisposables, LocalDisposables>(); services.AddScoped <IMediatorClientFactory, MediatorClientFactory>(); services.AddTransient <IMediatorClient, MediatorClient>(); services.AddSingleton <IMediatorService>((serviceProvider) => { IMediatorService result; lock (serviceProvider) { builder.Build(); var options = builder.GetOptions(); result = new MediatorService(options); } return(result); }); if (configure is object) { configure(builder); } return(builder); }
protected static void Init(TestContext testContext) { SetTestSettings(); Mediator = MediatorBuilder.BuildMediator(); _writeUserProfileRepository = ResolverRoot.Resolve <IWriteUserProfileRepository>(); FillDatabaseWithTestData(); }
private static void RegisterHandlers(Container containerBuilder, MediatorBuilder builder) { foreach (var binding in builder.MessageHandlerRegistry.MessageBindings) { containerBuilder.Register(binding.HandlerType); } }
private static async Task MainAsync() { var containerBuilder = new ContainerBuilder(); ConfigurationConfigurator.RegisterConfigurationSettings() .FromAssemblies(typeof(Program).Assembly) .RegisterWithContainer(configSetting => containerBuilder.RegisterInstance(configSetting) .AsSelf() .SingleInstance()) .DoYourThing(); containerBuilder.RegisterType <BusConfiguration>().SingleInstance().AsImplementedInterfaces(); containerBuilder.Register(container => { var busConfig = container.Resolve <IBusConfiguration>(); var mediatorBuilder = new MediatorBuilder(); return(mediatorBuilder.RegisterHandlers(typeof(Program).Assembly) .ConfigurePublishPipe(x => { x.UseMessageQueue(() => busConfig, () => true); }).Build()); }).AsImplementedInterfaces(); using (var container = containerBuilder.Build()) { var mediator = container.Resolve <IMediator>(); await mediator.SendAsync(new CalculateTotalCommand(1, 2)); } }
void GivenAMediator() { ClearBinding(); var builder = new MediatorBuilder(); _mediator = builder.RegisterHandlers(() => { var binding = new List <MessageBinding>() { new MessageBinding(typeof(TestBaseCommand), typeof(TestBaseCommandHandlerRaiseEvent)), new MessageBinding(typeof(TestEvent), typeof(TestEventHandler)) }; return(binding); }) .ConfigureGlobalReceivePipe(x => { x.UseConsoleLogger1(); }) .ConfigureCommandReceivePipe(x => { x.UseConsoleLogger2(); }) .ConfigurePublishPipe(x => { x.UseConsoleLogger3(); }) .Build(); }
public void GivenAMediatorAndTwoMiddlewares() { ClearBinding(); var builder = new MediatorBuilder(); _mediator = builder.RegisterHandlers(() => { var binding = new List <MessageBinding>() { new MessageBinding(typeof(GetGuidRequest), typeof(GetGuidRequestHandler)), new MessageBinding(typeof(GetGuidRequest), typeof(GetGuidRequestHandler2)) }; return(binding); }) .ConfigureCommandReceivePipe(x => { x.UseConsoleLogger1(); x.UseConsoleLogger2(); }) .ConfigureRequestPipe(x => { x.UseConsoleLogger3(); }) .Build(); }
public void GivenAMediatorBuildConnectsToAllPipelines() { base.ClearBinding(); var mediaBuilder = new MediatorBuilder(); mediaBuilder.RegisterHandlers(TestUtilAssembly.Assembly) .ConfigureGlobalReceivePipe(global => { global.UseSimpleMiddleware1(); }) .ConfigureCommandReceivePipe(x => { x.UseSimpleMiddleware1(); }) .ConfigureEventReceivePipe(e => { e.UseSimpleMiddleware1(); }) .ConfigurePublishPipe(p => { p.UseSimpleMiddleware1(); }).ConfigureRequestPipe(r => { r.UseSimpleMiddleware1(); }); var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterType <SimpleService>().AsSelf(); containerBuilder.RegisterType <AnotherSimpleService>().AsSelf(); containerBuilder.RegisterMediator(mediaBuilder); _container = containerBuilder.Build(); }
public static MediatorBuilder RegisterUnduplicatedHandlers(this MediatorBuilder mediatorBuilder) { return(mediatorBuilder.RegisterHandlers( assembly => assembly.DefinedTypes.Where(t => t.Name != nameof(MultiRequestsHandler) && t.Name != nameof(MultiEventsHandler) && t.Name != nameof(MultiCommandsHandler)), TestUtilAssembly.Assembly)); }
protected override void Load(ContainerBuilder builder) { base.Load(builder); var mediatorBuilder = new MediatorBuilder(); mediatorBuilder.RegisterHandlers(this.GetType().Assembly); builder.RegisterMediator(mediatorBuilder); }
private static IUnityContainer ConfigureContainer() { var container = new UnityContainer(); var mediaBuilder = new MediatorBuilder(); mediaBuilder.RegisterHandlers(typeof(MediatorNetUnit).Assembly); UnityExtensioins.Configure(mediaBuilder, container); return(container); }
public static void RegisterMediator(this Container container, MediatorBuilder mediatorBuilder) { container.RegisterSingleton(mediatorBuilder); container.Register(() => { var resolver = new SimpleInjectorDependencyScope(container); return(mediatorBuilder.Build(resolver)); }, Lifestyle.Scoped); RegisterHandlers(container, mediatorBuilder); }
void ConfigureMediator(IServiceCollection services) { services .AddTransient <SimpleService>() .AddTransient <AnotherSimpleService>() .AddTransient <ICalculateService, CalculateService>() .AddTransient <IBoardcastService, BoardcastService>(); var mediatorBuilder = new MediatorBuilder(); mediatorBuilder.RegisterHandlers(assembly => assembly.DefinedTypes.Where(t => t.Name != nameof(MultiRequestsHandler)), TestUtilAssembly.Assembly, typeof(Startup).Assembly); services.RegisterMediator(mediatorBuilder); }
void GivenAContainer() { var mediaBuilder = new MediatorBuilder(); mediaBuilder.RegisterUnduplicatedHandlers() .ConfigureCommandReceivePipe(x => { x.UseSimpleMiddleware(); }); _container = new Container(); _container.Configure(mediaBuilder); }
public void GivenAMediator() { var builder = new MediatorBuilder(); _mediator = builder.RegisterHandlers(() => { var binding = new List <MessageBinding> { new MessageBinding(typeof(TestEvent), typeof(TestEventHandler)) }; return(binding); }).Build(); }
public void GivenAContainer() { var mediaBuilder = new MediatorBuilder(); mediaBuilder.RegisterHandlers(TestUtilAssembly.Assembly) .ConfigureCommandReceivePipe(x => { x.UseSimpleMiddleware(); }); _container = new Container(); StructureMapExtensions.Configure(mediaBuilder, _container); }
public void GivenAMediatorWithNoPipeline() { var builder = new MediatorBuilder(); _mediator = builder.RegisterHandlers(() => { var binding = new List <MessageBinding> { new MessageBinding(typeof(TestBaseCommand), typeof(TestBaseCommandHandler)) }; return(binding); }).Build(); }
void GivenAContainer() { var mediaBuilder = new MediatorBuilder(); mediaBuilder.RegisterUnduplicatedHandlers() .ConfigureCommandReceivePipe(x => { x.UseSimpleMiddleware(); }); _container = new Container(); _container.Options.DefaultScopedLifestyle = new LifetimeScopeLifestyle(); _container.RegisterMediator(mediaBuilder); }
public void GivenAContainer() { var mediaBuilder = new MediatorBuilder(); mediaBuilder.RegisterHandlers(TestUtilAssembly.Assembly) .ConfigureCommandReceivePipe(x => { x.UseSimpleMiddleware(); }); _container = new Container(); _container.Options.DefaultScopedLifestyle = new LifetimeScopeLifestyle(); InjectHelper.RegisterMediator(_container, mediaBuilder); }
void GivenAMediator() { var builder = new MediatorBuilder(); _mediator = builder.RegisterHandlers(() => { var binding = new List <MessageBinding>() { new MessageBinding(typeof(TestBaseCommand), typeof(TestBaseCommandHandler)), new MessageBinding(typeof(DerivedTestBaseCommand), typeof(DerivedTestBaseCommandHandler)), }; return(binding); }).Build(); }
public void GivenAMediator() { var builder = new MediatorBuilder(); _mediator = builder.RegisterHandlers(() => { var binding = new List <MessageBinding> { new MessageBinding(typeof(AnotherCommand), typeof(MultiCommandsHandler)), new MessageBinding(typeof(DerivedTestBaseCommand), typeof(MultiCommandsHandler)) }; return(binding); }).Build(); }
void GivenAContainer() { var mediaBuilder = new MediatorBuilder(); mediaBuilder.RegisterUnduplicatedHandlers() .ConfigureCommandReceivePipe(x => { x.UseSimpleMiddleware(); }); _container = new ServiceCollection() .AddTransient <SimpleService>() .AddTransient <AnotherSimpleService>(); _container.RegisterMediator(mediaBuilder); }
IMediator SetupEventMediatorWithExplicitBindings() { var builder = new MediatorBuilder(); return(builder.RegisterHandlers(() => { var binding = new List <MessageBinding> { new MessageBinding(typeof(SimpleEvent), typeof(MultiEventsHandler)), new MessageBinding(typeof(TestEvent), typeof(MultiEventsHandler)) }; return binding; }).Build()); }
public static void Configure(this IContainer container, MediatorBuilder builder) { container.Configure(x => { x.For <MediatorBuilder>().Add(builder).Singleton(); x.For <IDependencyScope>().Use(() => new StructureMapDependencyScope(container).BeginScope()); x.For <IMediator>().Use(context => builder.Build(context.GetInstance <IDependencyScope>())); foreach (var binding in builder.MessageHandlerRegistry.MessageBindings) { x.AddType(binding.HandlerType, binding.HandlerType); } }); }
void GivenAMediator() { ClearBinding(); var builder = new MediatorBuilder(); _mediator = builder.RegisterHandlers(() => { var binding = new List <MessageBinding> { new MessageBinding(typeof(TestBaseCommand), typeof(SimpleCommandHandler)) }; return(binding); }) .Build(); }
IMediator SetupRequestMediatorWithExplicitBindings() { var builder = new MediatorBuilder(); return(builder.RegisterHandlers(() => { var binding = new List <MessageBinding>() { new MessageBinding(typeof(GetGuidRequest), typeof(MultiRequestsHandler)), new MessageBinding(typeof(SimpleRequest), typeof(MultiRequestsHandler)) }; return binding; }).Build()); }
void GivenAContainer() { ClearBinding(); var mediaBuilder = new MediatorBuilder(); mediaBuilder.RegisterUnduplicatedHandlers() .ConfigureCommandReceivePipe(x => { x.UseSimpleMiddleware(); }); _container = new ServiceCollection(); _container.RegisterMediator(mediaBuilder); }
public void GivenAContainer() { var mediaBuilder = new MediatorBuilder(); mediaBuilder.RegisterHandlers(TestUtilAssembly.Assembly) .ConfigureCommandReceivePipe(x => { x.UseSimpleMiddleware(); }); var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterMediator(mediaBuilder); _container = containerBuilder.Build(); }
IMediator SetupCommandMediatorWithExplicitBindings() { var builder = new MediatorBuilder(); return(builder.RegisterHandlers(() => { var binding = new List <MessageBinding> { new MessageBinding(typeof(AnotherCommand), typeof(MultiCommandsHandler)), new MessageBinding(typeof(DerivedTestBaseCommand), typeof(MultiCommandsHandler)) }; return binding; }).Build()); }
public void GivenAMediatorWithUnitOfWork() { var builder = new MediatorBuilder(); builder.RegisterHandlers(typeof(ExceptionInHandlerShouldRollbackTransaction).Assembly) .ConfigureGlobalReceivePipe(x => { x.UseUnitOfWork(() => true); }); ContainerBuilder.RegisterMediator(builder); _container = ContainerBuilder.Build(); }