public async Task Handle(T @event) { using (var scope = OrganizationCompositionRoot.BeginLifetimeScope()) { var mediator = scope.Resolve <IMediator>(); await mediator.Publish(@event); } }
public async Task <TResult> ExecuteQuery <TResult>(IQuery <TResult> query) { using (var scope = OrganizationCompositionRoot.BeginLifetimeScope()) { var mediator = scope.Resolve <IMediator>(); return(await mediator.Send(query)); } }
public async Task ExecuteCommand(ICommand command) { using (var scope = OrganizationCompositionRoot.BeginLifetimeScope()) { var mediator = scope.Resolve <IMediator>(); await mediator.Send(command); } }
public async Task <TResult> ExecuteCommandAsync <TResult>(ICommand <TResult> command) { using (var scope = OrganizationCompositionRoot.BeginLifetimeScope()) { var mediator = scope.Resolve <IMediator>(); return(await mediator.Send(command)); } }
public static void Initialize(string connection, string dbname, ILogger logger) { var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterModule(new LoggingModule(logger)); containerBuilder.RegisterModule(new MongoModule(connection, dbname)); containerBuilder.RegisterModule(new MediationModule()); containerBuilder.RegisterModule(new ProccesingModule()); containerBuilder.RegisterModule(new InternalClientModule()); containerBuilder.RegisterModule(new EventBusModule()); var container = containerBuilder.Build(); OrganizationCompositionRoot.SetContainer(container); }