예제 #1
0
        public Application(ObservableEventPublisher observableEventPublisher,
                           BusObserverAdapter <IEvent> busObserverAdapter,
                           ICommandHandler <CreateAccountCommand> createAccountCommandHandler,
                           ICommandHandler <CreateDepositCommand> createDepositCommandHandler,
                           IEventHandler <CreateAccountEvent> createAccountEventHandler,
                           IEventHandler <CreateDepositEvent> createDepositEventHandler,
                           IEventHandler <AddDepositToAccountEvent> addDepositToAccountEventHandler,
                           IHandlerFactoryMethod <IEvent> eventHandlerFactoryMethod,
                           IHandlerFactoryMethod <ICommand> commandHandlerFactoryMethod)
        {
            eventHandlerFactoryMethod.AddHandler(createAccountEventHandler);
            eventHandlerFactoryMethod.AddHandler(createDepositEventHandler);
            eventHandlerFactoryMethod.AddHandler(addDepositToAccountEventHandler);

            commandHandlerFactoryMethod.AddHandler(createAccountCommandHandler);
            commandHandlerFactoryMethod.AddHandler(createDepositCommandHandler);

            observableEventPublisher.AddObserver(busObserverAdapter);
        }