public async Task <bool> Handle(RemoverProdutoPedidoCommand request, CancellationToken cancellationToken) { var produtoPedido = _produtoPedidoRepository.GetEntityById(request.IDProdutoPedido); if (produtoPedido == null) { request.AddNotification("RemoverProdutoPedidoCommand", $"Produto ({request.IDProdutoPedido}) não encontrado no banco de dados."); } var pedido = _pedidoRepository.GetEntityById(produtoPedido.IDPedido); if (pedido.Produtos.Count() == 1) { request.AddNotification("RemoverProdutoPedidoCommand", $"Não é permitido remover todos os produtos. Feche a comanda ou adicione outro produto para remover este."); } if (request.Invalid) { await _mediator.Publish(new DomainNotification { Erros = request.Notifications }, cancellationToken); return(await Task.FromResult(false)); } _produtoPedidoRepository.Remove(produtoPedido.Id); return(await Task.FromResult(true)); }
public async Task DeveRetornarErroSePedidoNaoExistirAoRemoverProdutoPedido() { var handler = new PedidoCommandHandler( _pedidoGetEntityNullRepository, _garcomRepository, _comandaRepository, _historicoPedidoRepository, _produtoPedidoRepository, _clienteRepository, _mediator); var command = new RemoverProdutoPedidoCommand(Guid.NewGuid()); var retorno = await handler.Handle(command, new CancellationToken()); Assert.False(retorno); }
public async Task <bool> RemoverProdutoPedido(Guid idProdutoPedido) { var command = new RemoverProdutoPedidoCommand(idProdutoPedido); return(await _mediator.Send(command)); }