Beispiel #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);
        }
Beispiel #2
0
 private void DarCommit(IContextoDAO dao)
 {
     if (TemQueFechar == true) // tem que manter a conexão e a transação??
     {
         dao.Commit();
         dao.FecharConexao();
     }
 }
Beispiel #3
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);
     }
 }
Beispiel #4
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);
        }
Beispiel #5
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;
            }
        }