public List <Inconsistencia> Exclua(int codigoDoProduto)
        {
            var listaDeInconsistenciasExclusao = new List <Inconsistencia>();

            using (var validadorDeProduto = new ValidadorDeProduto())
            {
                listaDeInconsistenciasExclusao = validadorDeProduto.ValideExcluir(codigoDoProduto);
            }

            if (listaDeInconsistenciasExclusao.Count == 0)
            {
                using (var mapeadorDeProduto = new RepositorioDeProduto())
                {
                    mapeadorDeProduto.Exclua(codigoDoProduto);
                }
            }

            return(listaDeInconsistenciasExclusao);
        }
        public List <Inconsistencia> Salve(Produto produto, EnumTipoDeForm tipoDoForm)
        {
            var listaDeInconsistencias = new List <Inconsistencia>();

            if (tipoDoForm == EnumTipoDeForm.Cadastro)
            {
                using (var validadorDeProduto = new ValidadorDeProduto())
                {
                    listaDeInconsistencias = validadorDeProduto.ValideCadastroInicial(produto);
                }

                if (listaDeInconsistencias.Count > 0)
                {
                    return(listaDeInconsistencias);
                }
            }

            using (var validadorDeProduto = new ValidadorDeProduto())
            {
                listaDeInconsistencias = validadorDeProduto.ValideSalvar(produto);
            }

            if (listaDeInconsistencias.Count == 0)
            {
                using (var mapeadorDeProduto = new RepositorioDeProduto())
                {
                    mapeadorDeProduto.Insira(produto);

                    if (tipoDoForm == EnumTipoDeForm.Cadastro)
                    {
                        mapeadorDeProduto.InsiraNaTabelaQuantidade(produto.Codigo);
                    }

                    if (tipoDoForm == EnumTipoDeForm.Edicao)
                    {
                        AltereQuantidadeDeProduto(produto.Codigo, produto.QuantidadeEmEstoque);
                    }
                }
            }

            return(listaDeInconsistencias);
        }