예제 #1
0
        public async Task Handle(CreateOrder command)
        {
            Domain.Order order = new Domain.Order
            {
                Id     = Guid.NewGuid(),
                BookId = command.BookId
            };
            try
            {
                await _repository.Add(order);

                OrderCreated orderCreated = new OrderCreated
                {
                    OrderId       = order.Id,
                    TransactionId = command.TransactionId
                };

                await _bus.PublishAsync(orderCreated);
            }
            catch (Exception exception)
            {
                CreateOrderFailed failed = new CreateOrderFailed
                {
                    OrderId = order.Id,
                    Message = exception.Message
                };

                await _bus.PublishAsync(failed);
            }
        }
예제 #2
0
 private void Apply(CreateOrderFailed obj)
 {
     DispatchCommand <DummyNotifier>(new NotifyAdmin(AggregateRepository.CreateGuid()));
 }
예제 #3
0
 private void OnCreateOrderFailed(CreateOrderFailed evt)
 {
     _orderProcessEventHandler.HandleEvent <CreateOrderFailed, OrderProcessManager>(evt);
     SetLastEventNumber(evt);
 }