public async Task CommitOrderAsync(string clientId, string orderId) { var command = new CommitOrderCommand { ClientId = clientId, OrderId = orderId }; await CommandBus.Current.DispatchAsync(command); }
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); }