コード例 #1
0
        public async Task HandleAsync(OrderCreated @event)
        {
            var customer = await customerRepository.GetByIdAsync(@event.CustomerId.IdAsString());

            await orderRepository.InsertAsync(new OrderReadModel
            {
                Id           = @event.AggregateId.IdAsString(),
                CustomerId   = customer.Id,
                CustomerName = customer.Name,
                TotalItems   = 0
            });
        }
コード例 #2
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);
        }