//Todos os produtos em uma vigência específica
        public List <Produto> ConsulteTodos(DateTime vigencia)
        {
            string ComandoSQL = String.Format("SELECT T1.{0}, {1} FROM {2} AS T1 " +
                                              "INNER JOIN(SELECT MAX(VIGENCIA) VIGENCIA, {0} FROM {2} WHERE VIGENCIA <= CAST ('{4}' AS DATETIME2) GROUP BY {0}) AS T2 " +
                                              "ON T1.{0} = T2.{0} AND T1.VIGENCIA = T2.VIGENCIA ORDER BY {0}",
                                              "CODIGO",
                                              Colunas.Replace(", ", ", T1.")
                                              .Replace("CODIGO, ", string.Empty),
                                              Tabela,
                                              GSUtilitarios.FormateDateTimePtBrParaBD(vigencia));

            DataTable tabela;

            try
            {
                using (var GSBancoDeDados = new GSBancoDeDados())
                    tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);

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

                var listaRetorno = new List <Produto>();
                for (int linha = 0; linha < tabela.Rows.Count; linha++)
                {
                    listaRetorno.Add(MonteRetorno(tabela, linha));
                }

                return(listaRetorno);
            }
            catch (System.Exception)
            {
                return(null);

                throw;
            }
        }
        //Retorna a última vigência de todas as chaves diferentes de um portador
        public List <TEntidade> Consulte(Type portador, dynamic chavePortador)
        {
            var tipoPortador       = portador.Name;
            var colunaChave        = GSUtilitarios.EncontrePropriedadeChaveDoTipo(typeof(TEntidade));
            var colunasConsultadas = String.Join(",T1.", Colunas.Keys)
                                     .Replace(chavePortador + ",", String.Empty)
                                     .Replace(Colunas.Keys.Last() + ",T1.", String.Empty);

            //{0} = Tabela
            //{1} = Propriedade/Coluna chave
            //{2} = Tipo portador
            //{3} = Chave portador
            //{4} = Propriedades/Colunas consultadas com prefixo T1.
            string ComandoSQL = String.Format("SELECT {4} FROM ENDERECOS AS T1 " +
                                              "INNER JOIN(SELECT MAX(VIGENCIA) VIGENCIA, {1} FROM {0} GROUP BY {1}, TIPO_PORTADOR) AS T2 " +
                                              "ON T1.{1} = T2.{1} AND T1.VIGENCIA = T2.VIGENCIA " +
                                              "WHERE T1.TIPO_PORTADOR = '{2}' AND T1.CODIGO_PORTADOR = '{3}' " +
                                              "ORDER BY CODIGO_PORTADOR, CODIGO",
                                              Tabela,
                                              colunaChave,
                                              tipoPortador,
                                              chavePortador,
                                              colunasConsultadas);

            DataTable tabela;

            using (var GSBancoDeDados = new GSBancoDeDados())
            {
                tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);
            }

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

            return(ObtenhaListaObjetosConsultados(tabela));
        }
        public List <Interacao> ConsulteTodasInteracoesPorProduto(int codigoProduto)
        {
            string ComandoSQL = String.Format("SELECT {0} FROM {1} " +
                                              "WHERE CODIGO_PRODUTO = {2} " +
                                              "ORDER BY HORARIO DESC",
                                              Colunas,
                                              Tabela,
                                              codigoProduto);

            DataTable tabela;

            try
            {
                using (var GSBancoDeDados = new GSBancoDeDados())
                    tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);

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


                var listaRetorno = new List <Interacao>();
                for (int linha = 0; linha < tabela.Rows.Count; linha++)
                {
                    listaRetorno.Add(MonteRetorno(tabela, linha));
                }

                return(listaRetorno);
            }
            catch (System.Exception)
            {
                return(null);

                throw;
            }
        }
        //Retorna uma lista de todas as vigências existentes para uma chave
        public List <DateTime> ConsulteTodasVigencias(int Codigo)
        {
            string ComandoSQL = String.Format("SELECT VIGENCIA FROM {0} WHERE {1} = {2} ORDER BY VIGENCIA DESC",
                                              Tabela,
                                              "CODIGO",
                                              Codigo);

            DataTable tabela;

            try
            {
                using (var GSBancoDeDados = new GSBancoDeDados())
                    tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);

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

                var listaRetorno = new List <DateTime>();

                for (int linha = 0; linha < tabela.Rows.Count; linha++)
                {
                    var dado = tabela.Rows[linha]["VIGENCIA"];
                    //listaRetorno.Add(GSUtilitarios.FormateDateTimePtBrParaBD(dado.ToString()));
                    listaRetorno.Add((DateTime)dado);
                }

                return(listaRetorno);
            }
            catch (System.Exception)
            {
                return(null);

                throw;
            }
        }
        //Retorna todas as chaves diferentes de um portador
        public List <TEntidade> Consulte(Type portador, dynamic chavePortador)
        {
            var tipoPortador = portador.Name;

            string ComandoSQL = String.Format("SELECT {0} FROM {1} WHERE TIPO_PORTADOR = '{2}' AND CODIGO_PORTADOR = '{3}'",
                                              String.Join(", ", Colunas.Keys),
                                              Tabela,
                                              tipoPortador,
                                              chavePortador);

            DataTable tabela;

            using (var GSBancoDeDados = new GSBancoDeDados())
            {
                tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);
            }

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

            return(ObtenhaListaObjetosConsultados(tabela));
        }
Beispiel #6
0
        //Retorna uma lista de todas as vigências existentes para uma chave
        public List <DateTime> ConsulteTodasVigencias(dynamic chave)
        {
            string ComandoSQL = String.Format("SELECT VIGENCIA FROM {0} WHERE {1} = {2} ORDER BY VIGENCIA DESC",
                                              Tabela.ToUpper(),
                                              GSUtilitarios.EncontrePropriedadeChaveDoObjeto(typeof(TEntidade)).Name,
                                              chave.GetType().Equals(typeof(int)) ? chave : "'" + chave + "'");

            DataTable tabela;

            using (var GSBancoDeDados = new GSBancoDeDados())
            {
                tabela = GSBancoDeDados.ExecuteConsulta(ComandoSQL);
            }

            var listaRetorno = new List <DateTime>();

            for (int linha = 0; linha < tabela.Rows.Count; linha++)
            {
                var dado = tabela.Rows[linha]["VIGENCIA"];
                listaRetorno.Add(GSUtilitarios.FormateDateTimePtBrParaBD(dado.ToString()));
            }

            return(listaRetorno);
        }
Beispiel #7
0
 public void DeleteTabela()
 {
     using (var GSBancoDeDados = new GSBancoDeDados())
         GSBancoDeDados.ExecuteComando(_scriptDrop);
 }
Beispiel #8
0
 public void CrieTabela()
 {
     using (var GSBancoDeDados = new GSBancoDeDados())
         GSBancoDeDados.ExecuteComando(_scriptCreate);
 }