示例#1
0
 public OrderWriter(IWritterRepository <Order, OrderId> orderRepository,
                    ITransientDomainEventSubscriber subscriber,
                    IEnumerable <IDomainEventHandler <OrderId, OrderCreated> > orderCreatedEventHandlers,
                    IEnumerable <IDomainEventHandler <OrderId, ProductAdded> > productAddedEventHandlers,
                    IEnumerable <IDomainEventHandler <OrderId, ProductQuantityChanged> > productQuantityChangedEventHandlers)
 {
     this.orderRepository                     = orderRepository;
     this.subscriber                          = subscriber;
     this.orderCreatedEventHandlers           = orderCreatedEventHandlers;
     this.productAddedEventHandlers           = productAddedEventHandlers;
     this.productQuantityChangedEventHandlers = productQuantityChangedEventHandlers;
 }
示例#2
0
 public CartWriter(IRepository <Cart, CartId> cartRepository,
                   ITransientDomainEventSubscriber subscriber,
                   IEnumerable <IDomainEventHandler <CartId, CartCreatedEvent> > cartCreatedEventHandlers,
                   IEnumerable <IDomainEventHandler <CartId, ProductAddedEvent> > productAddedEventHandlers,
                   IEnumerable <IDomainEventHandler <CartId, ProductQuantityChangedEvent> > productQuantityChangedEventHandlers)
 {
     this.cartRepository                      = cartRepository;
     this.subscriber                          = subscriber;
     this.cartCreatedEventHandlers            = cartCreatedEventHandlers;
     this.productAddedEventHandlers           = productAddedEventHandlers;
     this.productQuantityChangedEventHandlers = productQuantityChangedEventHandlers;
 }
        public ProductWriteService(IRepository <Product, ProductId> ProductRepository,
                                   ITransientDomainEventSubscriber subscriber,
                                   IEnumerable <IDomainEventHandler <ProductId, ProductItemCreated> > ProductCreatedEventHandlers,
                                   IEnumerable <IDomainEventHandler <ProductId, ProductItemChanged> > productAddedEventHandlers,
                                   IEnumerable <IDomainEventHandler <ProductId, ProductPriceChanged> > productQuantityChangedEventHandlers)
        {
            this.ProductRepository                   = ProductRepository;
            this.subscriber                          = subscriber;
            this.productCreatedEventHandlers         = ProductCreatedEventHandlers;
            this.productAddedEventHandlers           = productAddedEventHandlers;
            this.productQuantityChangedEventHandlers = productQuantityChangedEventHandlers;


            subscriber.Subscribe <ProductItemCreated>(async @event => await HandleAsync(productCreatedEventHandlers, @event));
            subscriber.Subscribe <ProductItemChanged>(async @event => await HandleAsync(productAddedEventHandlers, @event));
            subscriber.Subscribe <ProductPriceChanged>(async @event => await HandleAsync(productQuantityChangedEventHandlers, @event));
        }