コード例 #1
0
        public async Task Consume(ConsumeContext <OrderCreatedEvent> context)
        {
            var eventMessage = context.Message;

            var customer = await _orderWriteDbContext.Customers.FirstOrDefaultAsync(i => i.CustomerId == eventMessage.CustomerId);

            var product = await _orderWriteDbContext.Products.FirstOrDefaultAsync(i => i.ProductId == eventMessage.ProductId);

            _orderReadDbContext.OrderPreviews.Add(new OrderPreview
            {
                OrderStatus     = eventMessage.OrderStatus,
                CustomerAddress = customer.Adress,
                CustomerId      = customer.CustomerId,
                CustomerName    = customer.Name,
                ProductId       = product.ProductId,
                ProductName     = product.ProductName,
                OrderId         = eventMessage.OrderId,
                Quantity        = eventMessage.Quantity,
                Total           = eventMessage.Total
            });

            await _orderReadDbContext.SaveChangesAsync();

            await Console.Out.WriteLineAsync($"OrderId={eventMessage.OrderId} has processed!");
        }
コード例 #2
0
        public async Task Consume(ConsumeContext <OrderCanceledEvent> context)
        {
            var order = await _orderReadDbContext.OrderPreviews.FirstOrDefaultAsync(i => i.OrderId == context.Message.OrderID);

            order.OrderStatus = "Canceled";

            await _orderReadDbContext.SaveChangesAsync();

            await Console.Out.WriteLineAsync($"OrderId={context.Message.OrderID} has processed!");
        }