コード例 #1
0
        public async Task HandleAsync(ProductAdded @event)
        {
            var product = await productRepository.GetByIdAsync(@event.ProductId.IdAsString());

            var cart = await orderRepository.GetByIdAsync(@event.AggregateId.IdAsString());

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

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

            await orderItemRepository.InsertAsync(cartItem);
        }