Пример #1
0
        public void Delete_product_command_id_is_required()
        {
            // Given
            _sut.Id = Guid.Empty;

            // When
            var validation = _sut.Validate();

            // Then
            validation.HasErrors.Should().BeTrue();
            validation.Errors.First().Should().Be(ExceptionCodes.ID_IS_REQUIRED);
        }
Пример #2
0
        public void DeleteProductValidCommand()
        {
            var command = new DeleteProductCommand(new Guid("11111111111111111111111111111111"));

            command.Validate();
            Assert.AreEqual(command.Valid, true);
        }
Пример #3
0
        public async Task <ICommandResult> Handle(DeleteProductCommand request, CancellationToken cancellationToken)
        {
            request.Validate();

            if (!request.IsValid)
            {
                return(new CommandResult(false, "Problemas ao cadastrar o produto..", request.Notifications));
            }

            var deletedProduct = await _productRepository.GetProductAsync(request.Id);

            if (deletedProduct == null)
            {
                return(new CommandResult(false, "O produto não foi encontrado.", null));
            }

            await _productRepository.DeleteProductAsync(deletedProduct);

            var buyingProduct      = false;
            var productDomainEvent = new ProductOperationDomainEvent(EventAction.DELETE, deletedProduct, buyingProduct);

            await _domainEntityEventHandler.Raise(productDomainEvent);

            return(new CommandResult(true, "Produto excluído com sucesso!", request));
        }
Пример #4
0
        public void DeleteProductInvalidCommand()
        {
            Guid guidID  = Guid.Empty;
            var  command = new DeleteProductCommand(guidID);

            command.Validate();
            Assert.AreEqual(command.Valid, false);
        }
Пример #5
0
        public ICommandResult Handle(DeleteProductCommand command)
        {
            command.Validate();
            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Ocorreu um erro na exclusão do produto, verifique os dados...", command.Notifications));
            }

            Product product = _repository.GetById(command.Id);

            _repository.Delete(command.Id);

            return(new GenericCommandResult(true, "Produto excluido com sucesso", product));
        }
        public IActionResult Delete(Guid id)
        {
            var command = new DeleteProductCommand(id);

            var validation = command.Validate();

            if (validation.HasErrors)
            {
                return(BadRequest(validation.ConvertToJson()));
            }

            _commandHandler.Handle(command);
            return(Ok());
        }
        public async Task <ICommandResult> HandleAsync(DeleteProductCommand command)
        {
            command.Validate();
            if (command.Invalid)
            {
                return(new GenericCommandResult <ProductEntity>(false, command.Notifications));
            }

            var product = await _repository.GetAsync(command.Id);

            product.Delete();

            await _repository.UpdateAsync(product);

            return(new GenericCommandResult <ProductEntity>(true, product));
        }
        public void Delete_Product_With_Valid_Id()
        {
            _commandWithValidId.Validate();

            Assert.AreEqual(_commandWithValidId.Valid, true);
        }
        public void Delete_Product_Without_Id()
        {
            _commandWithInvalidId.Validate();

            Assert.AreEqual(_commandWithInvalidId.Valid, false);
        }