public async Task <Guid> Handle(AddProductCommand request, CancellationToken cancellationToken) { _logger.Debug("Handling AddProductCommand"); var product = MapProduct(request); await _productRepository.Store(product).ConfigureAwait(false); foreach (var @event in product.PendingChanges) { _eventPublisher.Publish(@event); } return(product.Id); }
public async Task <Unit> Handle(ActivateProductCommand request, CancellationToken cancellationToken) { _logger.Debug($"Handling ActivateProductCommand for Product {request.Id}"); var product = await _productRepository.GetProductById(request.Id).ConfigureAwait(false); if (product != null) { product.IsActive = true; await _productRepository.Store(product).ConfigureAwait(false); foreach (var @event in product.PendingChanges) { _eventPublisher.Publish(@event); } } return(Unit.Value); }