Example #1
0
        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);
        }