예제 #1
0
        private async Task SetStatus(Guid orderId)
        {
            var order = await _dbContext.Orders.SingleOrDefaultAsync(x => x.OrderId == orderId);

            order.Status = OrderStatus.ReadyToShip;
            await _dbContext.SaveChangesAsync();
        }
예제 #2
0
        public async Task Handle(CancelOrder message, IMessageHandlerContext context)
        {
            var order = await _dbContext.Orders.SingleAsync(x => x.OrderId == message.OrderId);

            order.Status = OrderStatus.Cancelled;
            await _dbContext.SaveChangesAsync();

            await context.Publish <OrderCancelled>(cancelled =>
            {
                cancelled.OrderId = message.OrderId;
            });
        }
예제 #3
0
        public async Task Handle(PlaceOrder message, IMessageHandlerContext context)
        {
            Debug.WriteLine($"PlaceOrderHandler. OrderId: {message.OrderId}. MessageId: {context.MessageId}");
            await _dbContext.Orders.AddAsync(new Order
            {
                OrderId = message.OrderId,
                Status  = OrderStatus.Pending
            });

            await _dbContext.SaveChangesAsync();

            var orderPlaced = new OrderPlaced
            {
                OrderId = message.OrderId
            };
            await context.Publish(orderPlaced);
        }