Ejemplo n.º 1
0
        public async Task HandleAsync(ProductAddedEvent @event)
        {
            var product = await _productRepository.Get(@event.ProductId.IdAsString());

            var cart = await _cartRepository.Get(@event.AggregateId.IdAsString());

            var cartItem = CartItemReadModel.CreateFor(@event.AggregateId.IdAsString(), @event.ProductId.IdAsString());

            cartItem.ProductName = product.Name;
            cartItem.Quantity    = @event.Quantity;
            cart.TotalItems     += @event.Quantity;
            await _cartRepository.Update(cart);

            await _cartItemRepository.Insert(cartItem);
        }
Ejemplo n.º 2
0
        public async Task HandleAsync(ProductQuantityChangedEvent @event)
        {
            var cartItemId = CartItemReadModel.IdFor(@event.AggregateId.IdAsString(), @event.ProductId.IdAsString());
            var cartItem   = (await _cartItemRepository
                              .Find(x => x.Id == cartItemId))
                             .Single();

            var cart = await _cartRepository.Get(@event.AggregateId.IdAsString());

            cart.TotalItems  += @event.NewQuantity - @event.OldQuantity;
            cartItem.Quantity = @event.NewQuantity;

            await _cartRepository.Update(cart);

            await _cartItemRepository.Update(cartItem);
        }