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