public List <Produto> ConsulteTodosOsProdutos()
 {
     using (var mapeadorDeProduto = new RepositorioDeProduto())
     {
         return(mapeadorDeProduto.ConsulteTodos());
     }
 }
 public void AltereQuantidadeDeProduto(int codigoDoProduto, int novaQuantidade)
 {
     using (var mapeadorDeProduto = new RepositorioDeProduto())
     {
         mapeadorDeProduto.AltereQuantidadeDeProduto(codigoDoProduto, novaQuantidade);
     }
 }
        public int ObtenhaProximoCodigoDisponivel()
        {
            int codigo;

            using (var mapeadorDeProduto = new RepositorioDeProduto())
            {
                codigo = mapeadorDeProduto.ObtenhaProximoCodigoDisponivel();
            }

            return(codigo);
        }
        public List <DateTime> ConsulteTodasAsVigenciasDeUmProduto(int codigoDoProduto)
        {
            var listaDeVigencias = new List <DateTime>();

            using (var mapeadorDeProduto = new RepositorioDeProduto())
            {
                listaDeVigencias = mapeadorDeProduto.ConsulteTodasVigencias(codigoDoProduto);
            }

            return(listaDeVigencias);
        }
        private bool EhCadastro(int codigoDoProduto)
        {
            Produto produtoConsultado;

            using (var mapeadorDeProduto = new RepositorioDeProduto())
            {
                produtoConsultado = mapeadorDeProduto.Consulte(codigoDoProduto);
            }

            if (produtoConsultado == null)
            {
                return(true);
            }

            _produtoAnterior = produtoConsultado;
            return(false);
        }
        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);
        }
        public List <Inconsistencia> ValideCadastroInicial(Produto produto)
        {
            var listaDeInconsistencias = new List <Inconsistencia>();

            Produto produtoConsultado;

            using (var mapeadorDeProduto = new RepositorioDeProduto())
            {
                produtoConsultado = mapeadorDeProduto.Consulte(produto.Codigo);
            }

            if (produtoConsultado != null && (produtoConsultado.Codigo == produto.Codigo || produto.Nome == produto.Nome))
            {
                listaDeInconsistencias.Add(
                    new Inconsistencia()
                {
                    Mensagem = Mensagens.JA_EXISTE_UM_X_COM_ESSE_Y("Produto", "código ou nome")
                });
            }

            return(listaDeInconsistencias);
        }
 private RepositorioDeProduto MapeadorDeProduto()
 {
     return(_mapeadorDeProduto ?? (_mapeadorDeProduto = new RepositorioDeProduto()));
 }
 public Produto Consulte(int codigo)
 {
     using (var mapeadorDeProduto = new RepositorioDeProduto())
         return(mapeadorDeProduto.Consulte(codigo));
 }