Esempio n. 1
0
        private string Validar(Tipo entidade, IDictionary <string, IList <IValidador> > Validadores)
        {
            if (Validadores != null && Validadores.ContainsKey(entidade.GetType().Name))
            {
                foreach (IValidador val in Validadores[entidade.GetType().Name])
                {
                    val.SalvaConexao(this.ConexaoAtiva);
                    val.SalvaTransacao(this.TransacaoAtiva);
                    string msg = val.Executar(entidade);

                    if (msg == null)
                    {
                        continue;
                    }

                    IContextoDAO dao = Daos[entidade.GetType().Name];
                    dao.Rollback();
                    dao.FecharConexao();

                    return(msg);
                }
            }

            return(null);
        }
Esempio n. 2
0
 private void DarCommit(IContextoDAO dao)
 {
     if (TemQueFechar == true) // tem que manter a conexão e a transação??
     {
         dao.Commit();
         dao.FecharConexao();
     }
 }
Esempio n. 3
0
        private IList <Tipo> RealizaConsulta(Tipo entidade)
        {
            IContextoDAO dao = this.InicializaDAO(entidade); // Pegar contexto correspondente

            if (dao == null)                                 // Não tem contexto??
            {
                throw new Exception("Operação Inválida");
            }

            return(RealizaConsultaNoBD(entidade, dao));
        }
Esempio n. 4
0
 private string RealizaModificacaoNoBD(Tipo entidade, IContextoDAO dao, Action <IContextoDAO> expressao)
 {
     try
     {
         expressao.Invoke(dao); // salva os dados parametrizados
         DarCommit(dao);
         return(null);
     }
     catch (Exception e)
     {
         dao.Rollback();
         dao.FecharConexao();
         return(e.Message);
     }
 }
Esempio n. 5
0
        private string RealizaModificacao(IList <Tipo> entidades,
                                          IDictionary <string, IList <IValidador> > Validadores, Action <IContextoDAO, Tipo> expressao)
        {
            if (entidades == null || entidades.Count == 0)
            {
                Daos[typeof(Tipo).Name].Rollback();
                Daos[typeof(Tipo).Name].FecharConexao();
                return("Nenhum valor informado");
            }

            IContextoDAO dao = this.InicializaDAO(entidades[0]); // Pegar contexto correspondente

            if (dao == null)                                     // Não tem contexto??
            {
                return("Operação Inválida");
            }

            foreach (Tipo valor in entidades)
            {
                string msg = Validar(valor, Validadores); // validar entidade

                if (msg != null)                          // Deu erro??
                {
                    return(msg);
                }
            }


            foreach (Tipo valor in entidades) // realizar Operações
            {
                try
                {
                    expressao.Invoke(dao, valor);
                }
                catch (Exception e)
                {
                    dao.Rollback();
                    dao.FecharConexao();
                    return(e.Message);
                }
            }

            DarCommit(dao);

            return(null);
        }
Esempio n. 6
0
        private string RealizaConsulta(Tipo entidade,
                                       IDictionary <string, IList <IValidador> > Validadores,
                                       IList <Tipo> retorno)
        {
            IContextoDAO dao = this.InicializaDAO(entidade); // Pegar contexto correspondente

            if (dao == null)                                 // Não tem contexto??
            {
                throw new Exception("Operação Inválida");
            }

            if (Validadores != null)
            {
                string msg = Validar(entidade, Validadores);

                if (msg != null)
                {
                    retorno = null;
                    return(msg);
                }
            }

            try
            {
                retorno.Clear();
                IList <Tipo> auxiliar = RealizaConsultaNoBD(entidade, dao);

                if (auxiliar != null)
                {
                    foreach (Tipo valor in auxiliar)
                    {
                        retorno.Add(valor); // salvando valor retornado
                    } // foreach
                } // if

                return(null);
            }
            catch (Exception e)
            {
                retorno = null;
                return(e.Message);
            }
        }
Esempio n. 7
0
        private string RealizaModificacao(Tipo entidade,
                                          IDictionary <string, IList <IValidador> > Validadores, Action <IContextoDAO> expressao)
        {
            IContextoDAO dao = this.InicializaDAO(entidade); // Pegar contexto correspondente

            if (dao == null)                                 // Não tem contexto??
            {
                return("Operação Inválida");
            }

            string msg = Validar(entidade, Validadores); // validar entidade

            if (msg != null)                             // Deu erro??
            {
                return(msg);
            }

            return(RealizaModificacaoNoBD(entidade, dao, expressao));
        }
Esempio n. 8
0
        private IList <Tipo> RealizaConsultaNoBD(Tipo entidade, IContextoDAO dao)
        {
            try
            {
                IList <object> retorno = dao.Consultar(entidade); // salva os dados parametrizados
                DarCommit(dao);
                if (retorno == null || retorno.Count == 0)
                {
                    return(null);
                }
                IList <Tipo> retornoFinal = retorno.OfType <Tipo>().ToList();

                return(retornoFinal);
            }
            catch (Exception e)
            {
                dao.Rollback();
                dao.FecharConexao();
                throw;
            }
        }
Esempio n. 9
0
        private IContextoDAO InicializaDAO(Tipo entidade)
        {
            IContextoDAO dao = Daos[entidade.GetType().Name];

            if (dao == null)
            {
                return(null);
            }

            if (ConexaoAtiva == null)
            {
                dao.AbrirConexao();
                dao.ComecaTransacao();
                ConexaoAtiva   = dao.RetornaConexao();
                TransacaoAtiva = dao.RetornaTransacao();
            }
            else
            {
                dao.CompartilhaConexao(ConexaoAtiva);
                dao.CompartilharTransacao(TransacaoAtiva);
            }

            return(dao);
        }