public async Task CommitOrderAsync(string clientId, string orderId)
        {
            var command = new CommitOrderCommand
            {
                ClientId = clientId,
                OrderId  = orderId
            };

            await CommandBus.Current.DispatchAsync(command);
        }
Ejemplo n.º 2
0
        public async Task <Unit> Handle(CommitOrderCommand request, CancellationToken cancellationToken)
        {
            var order = await orderRepository.FirstOrDefaultAsync(e => e.Id == request.OrderId);

            if (order == null)
            {
                return(Unit.Value);
            }

            var user = await userRepository.GetAsync(request.UserId);

            order.Commit(user);
            await orderRepository.UpdateAsync(order);

            Commit();
            await bus.InvokeAsync(new CommitOrderEvent(request.OrderId, request.UserId));

            return(Unit.Value);
        }