Exemple #1
0
        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);
            });
        }
Exemple #2
0
        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;
                }))
            });
        }