private void RegisterHandlerRegistrationManager() { ServiceCollection.AddScoped <IHandlerRegistrationManager>(q => { var handlerRegistrationManager = new HandlerRegistrationManager(); var registrationHandlerCollection = GetHandlerRegistrations().ToList(); registrationHandlerCollection.Add(new HandlerRegistration { HandlerRegistrationType = HandlerRegistrationTypeEnum.Event, Order = 1, StopOnError = false, IsAsync = false, MessageType = typeof(DomainNotificationEvent), HandlerType = typeof(DomainNotificationEventHandler) }); if (registrationHandlerCollection?.Count > 0) { foreach (var registrationHandler in registrationHandlerCollection) { handlerRegistrationManager.RegisterHandler(registrationHandler); } } return(handlerRegistrationManager); }); }
private TypeRegistration[] ConfigureRegistrationPipeline() { return(new[] { new TypeRegistration(typeof(IHandlerRegistrationManager), new Func <IServiceProvider, object>(q => { var registrationManager = new HandlerRegistrationManager(); // Domain Notification Handlers registrationManager.RegisterDomainNotificationHandler(typeof(DomainNotification), typeof(InMemoryDefaultDomainNotificationHandler), 1, false); // Command Handlers registrationManager.RegisterCommandHandler(typeof(ImportInvoiceCommand), typeof(ImportInvoiceCommandHandler), 1, false, false); // Query Handlers registrationManager.RegisterQueryHandler(typeof(GetCustomerByGovernamentalDocumentNumberQuery), typeof(Domain.Handlers.Queries.Customers.GetCustomerByGovernamentalDocumentNumberQueryHandler), 1, false, false); registrationManager.RegisterQueryHandler(typeof(GetDomainModelByIdQuery <Customer>), typeof(Domain.Handlers.Queries.Customers.GetDomainModelByIdQueryHandler), 1, false, false); registrationManager.RegisterQueryHandler(typeof(GetDomainModelByIdQuery <Invoice>), typeof(Domain.Handlers.Queries.Invoices.GetDomainModelByIdQueryHandler), 1, false, false); return registrationManager; })) }); }