public async Task <TResult> ExecuteQueryAsync <TResult>(IQuery <TResult> query) { using (var scope = ParcelsCompositionRoot.BeginLifetimeScope()) { var mediator = scope.Resolve <IMediator>(); return(await mediator.Send(query)); } }
private static void ConfigureCompositionRoot( string connectionString, ILogger moduleLogger) { var containerBuilder = new ContainerBuilder(); var loggerFactory = new SerilogLoggerFactory(moduleLogger); containerBuilder.RegisterModule(new LoggingModule(moduleLogger)); containerBuilder.RegisterModule(new DataAccessModule(connectionString, loggerFactory)); containerBuilder.RegisterModule(new MediatorModule()); containerBuilder.RegisterModule(new ProcessingModule()); _container = containerBuilder.Build(); ParcelsCompositionRoot.SetContainer(_container); }