public IActionResult AdicionarSolicitacao(NovaSolicitacaoDto dto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Produto produto = _productRepository.FindById(dto.ProductId);

            if (produto == null || !produto.PossuiEstoqueBaixoDoMinimo())
            {
                return(BadRequest("O produto informado não foi encontrado ou não se encaixa nos requisitos para solicitações."));
            }

            if (_solicitacaoRepository.ProdutoPossuiSolicitacaoAberta(produto.Id))
            {
                return(BadRequest("Produto já possui solicitação em aberto."));
            }

            Solicitacao solicitacao = new Solicitacao();

            solicitacao.Data                 = DateTime.Today;
            solicitacao.ProdutoId            = produto.Id;
            solicitacao.SolicitanteId        = CurrentUser.Id;
            solicitacao.QuantidadeSolicitada = dto.Quantidade;
            _solicitacaoRepository.Save(solicitacao);

            return(Ok());
        }
        public Solicitacao SalvarSolicitacao(Solicitacao solicitacao)
        {
            try
            {
                if (solicitacao == null)
                {
                    throw new Exception("Não é possivel salvar um Solicitacao vazio");
                }

                _repositorySolicitacao.Save(solicitacao);
                return(solicitacao);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }