コード例 #1
0
 public void ExecuteSql(string nomeDoMetodo = null, bool zerarQuery = true)
 {
     try
     {
         if (G1.Nada(Cmd.CommandText))
         {
             Cmd.CommandText = Convert.ToString(query);
         }
         Cmd.ExecuteNonQuery();
         Cmd.CommandText = null;
         if (query != null && zerarQuery)
         {
             query.Clear();
         }
     }
     catch (Exception e)
     {
         Cmd.CommandText = null;
         query           = null;
         if (!G1.Nada(nomeDoMetodo) && nomeDoMetodo.IndexOf(".AtualizaTabela") < 0)
         {
             throw new Exception(nomeDoMetodo + " - " + e.Message, e.InnerException);                                                                       //exceção será disparada somente para os comandos DML (Insert,Update,Delete e Select)
         }
     }
 }
コード例 #2
0
 public string StrLike(string valor, bool semAcento = false)
 {
     try
     {
         return($"'%{(semAcento ? G1.RemoveAcentos(valor) : valor.Replace("'", "")).Replace("%", "")}%'");
     }
     catch { return("NULL"); }
 }
コード例 #3
0
 /// <summary>michele, 25/06/2014 - Monta o StringBuider(query) de acordo com o parametro trecho.
 /// Para criar uma nova instância, defina o parâmetro novo com true</summary>
 public void Query(string trecho = null, bool novo = false)
 {
     if (query == null || novo)
     {
         query = new StringBuilder();
     }
     if (!G1.Nada(trecho))
     {
         query.Append(trecho);
     }
 }
コード例 #4
0
 /// <summary>coloca '' para montar o parâmetro quando for varchar, facilitando a montagem da query</summary>
 public string Str(string valor = "", bool semAcento = false)
 {
     try
     {
         if (G1.Nada(valor))
         {
             return("NULL");
         }
         return($"'{(semAcento ? G1.RemoveAcentos(valor) : valor.Replace("'", ""))}'");
     }
     catch { return("NULL"); }
 }
コード例 #5
0
 //Verifica Atraso
 public bool EmAtraso(Locacao loc, string conString)
 {
     try
     {
         using (Conexao c = new Conexao(conString))
         {
             c.Query($"Select count(*) From Locacao Where Id = {loc.Id} And Status = 0 And Convert(Date,DtDevolucao,120) < convert(date,getdate(),120)");
             return(G1.GetInt(c.DtSql().Rows[0][0]) > 0);
         }
     }
     catch (Exception e)
     {
         throw
             new Exception("Erro Locação em Atraso\n" + e.Message);
     }
 }
コード例 #6
0
 /// <summary>retorna a data no formato inglês americano, sem separadores, para utilizar em querys do sqlserver. Caso tenha qualwuer falha, retorna NULL</summary>
 public string Data(DateTime data)
 {
     try
     {
         if (!G1.IsDate(data))
         {
             return("NULL");
         }
         StringBuilder s = new StringBuilder(Convert.ToString(data.Year));
         s.Append(G1.NumeroMes(data));
         s.Append(G1.DiaDoMes(data));
         s.Append(" ");
         s.Append(G1.HoraDoDia(data));
         return($"'{Convert.ToString(s)}'");
     }
     catch { return("NULL"); }
 }
コード例 #7
0
ファイル: G1.cs プロジェクト: MARTINSMICHELES/TESTE-WIPRO
        /// <summary>michele, 18/08/2015 - retorna o texto sem acentos</summary>
        public static string RemoveAcentos(string text = null)
        {
            if (G1.Nada(text))
            {
                return("");
            }
            StringBuilder s         = new StringBuilder();
            var           arrayText = text.Normalize(NormalizationForm.FormD).ToCharArray();

            foreach (char letter in arrayText)
            {
                if (CharUnicodeInfo.GetUnicodeCategory(letter) != UnicodeCategory.NonSpacingMark)
                {
                    s.Append(letter);
                }
            }
            return(Convert.ToString(s).Replace("’", "").Replace("'", "").Replace("–", "").Replace("'", "").Replace("Ç", "C").Replace("ç", "c").Replace("à", "a").Replace("À", "A").Replace("º", "").Replace("ª", "").Replace(" - ", "").Replace("-", "").Trim());
        }
コード例 #8
0
        public List <Cliente> Listar(Cliente cli, string conString)
        {
            List <Cliente> lista = new List <Cliente>();
            DataTable      d;

            using (Conexao c = new Conexao(conString))
            {
                c.Query("Select Id,Nome,Cpf From Cliente");
                c.Query(cli.Id > 0 ? c.WhereAnd($"Id = {cli.Id}") : "");
                c.Query(!G1.Nada(cli.Nome) ? c.WhereAnd($"Nome Like {c.StrLike(cli.Nome)}") : "");
                c.Query(!G1.Nada(cli.Cpf) ? c.WhereAnd($"Cpf = {c.Str(cli.Cpf)}") : "");
                d = c.DtSql();
            }
            if (G1.DtOk(d))
            {
                lista = JsonConvert.DeserializeObject <List <Cliente> >(G1.DtToJson(d), G1.CfJson());
            }
            return(lista);
        }
コード例 #9
0
        public List <ItensLocacao> Listar(ItensLocacao iloc, string conString)
        {
            List <ItensLocacao> lista = new List <ItensLocacao>();
            DataTable           d;

            using (Conexao c = new Conexao(conString))
            {
                c.Query("Select IdItem, IdLocacao, Status, IdFilme From ItensLocacao");
                c.Query(iloc.IdItem > 0 ? c.WhereAnd($"IdItem = {iloc.IdItem}") : "");
                c.Query(!G1.Nada(iloc.IdLocacao) ? c.WhereAnd($"IdLocacao Like {(iloc.IdLocacao)}") : "");
                c.Query(!G1.Nada(iloc.Status) ? c.WhereAnd($"Status Like {(iloc.Status)}") : "");
                c.Query(!G1.Nada(iloc.IdFilme) ? c.WhereAnd($"IdFilme = {(iloc.IdFilme)}") : "");
                d = c.DtSql();
            }
            if (G1.DtOk(d))
            {
                lista = JsonConvert.DeserializeObject <List <ItensLocacao> >(G1.DtToJson(d), G1.CfJson());
            }
            return(lista);
        }
コード例 #10
0
ファイル: Filmes.cs プロジェクト: MARTINSMICHELES/TESTE-WIPRO
        public List <Filmes> Listar(Filmes film, string conString)
        {
            List <Filmes> lista = new List <Filmes>();
            DataTable     d;

            using (Conexao c = new Conexao(conString))
            {
                c.Query("Select Id,Titulo,Genero, Status From Filmes");
                c.Query(film.Id > 0 ? c.WhereAnd($"Id = {film.Id}") : "");
                c.Query(!G1.Nada(film.Titulo) ? c.WhereAnd($"Titulo Like {c.StrLike(film.Titulo)}") : "");
                c.Query(!G1.Nada(film.Genero) ? c.WhereAnd($"Genero = {c.Str(film.Genero)}") : "");
                c.Query(!G1.Nada(film.Status) ? c.WhereAnd($"Status = {film.Status}") : "");

                d = c.DtSql();
            }
            if (G1.DtOk(d))
            {
                lista = JsonConvert.DeserializeObject <List <Filmes> >(G1.DtToJson(d), G1.CfJson());
            }
            return(lista);
        }
コード例 #11
0
 /// <summary>michele, 25/06/2014 - Facilita na criação de parâmetros para montar as Querys
 /// O parâmetro "trechoQuery" é opcional, mas se informado, cria o parâmetro e o trecho da Query que irá utilizá-lo</summary>
 public void Param(string parametro, object valor, string trechoQuery = null)
 {
     try
     {
         if (Cmd.Parameters.IndexOf(parametro) >= 0)
         {
             Cmd.Parameters.RemoveAt(parametro);                                        //caso já exista, será removido para evitar erros
         }
         if (valor == null)
         {
             valor = (string)string.Empty;
         }
         if (valor is bool)
         {
             valor = Convert.ToInt16(valor);
         }
         if (valor is DateTime)
         {
             if (!G1.IsDate(valor))
             {
                 valor = DBNull.Value;
             }
             else
             {
                 valor = new DateTime
                             (Convert.ToDateTime(valor).Year, Convert.ToDateTime(valor).Month, Convert.ToDateTime(valor).Day,
                             Convert.ToDateTime(valor).Hour, Convert.ToDateTime(valor).Minute, Convert.ToDateTime(valor).Second);
             }
         }
         Cmd.Parameters.AddWithValue(parametro, valor);
         if (!G1.Nada(trechoQuery))
         {
             Query(trechoQuery);
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }
コード例 #12
0
        public List <Locacao> Listar(Locacao loc, string conString)
        {
            List <Locacao> lista = new List <Locacao>();
            DataTable      d;

            using (Conexao c = new Conexao(conString))
            {
                c.Query("Select Id, Status, IdCliente, DtLocacao, DtDevolucao From Locacao");
                c.Query(loc.Id > 0 ? c.WhereAnd($"Id = {loc.Id}") : "");
                c.Query(loc.Status > 0 ? c.WhereAnd($"Status = {loc.Status}") : "");
                c.Query(loc.IdCliente > 0 ? c.WhereAnd($"IdCliente = {loc.IdCliente}") : "");
                c.Query(G1.IsDate(loc.DtLocacao) ? c.WhereAnd($"DtLocacao = {c.Data(loc.DtLocacao)}") : "");
                c.Query(G1.IsDate(loc.DtDevolucao) ? c.WhereAnd($"DtDevolucao = {c.Data(loc.DtDevolucao)}") : "");

                d = c.DtSql();
            }
            if (G1.DtOk(d))
            {
                lista = JsonConvert.DeserializeObject <List <Locacao> >(G1.DtToJson(d), G1.CfJson());
            }
            return(lista);
        }
コード例 #13
0
 public int InsertReturnId(string nomeDoMetodo = null)
 {
     try
     {
         query.Append(";Select SCOPE_IDENTITY()");
         Cmd.CommandText = Convert.ToString(query);
         SqlDataAdapter sqlAdapter = new SqlDataAdapter(Cmd);
         DataTable      d          = new DataTable();
         d.BeginLoadData();
         sqlAdapter.Fill(d);
         d.EndLoadData();
         Cmd.CommandText = null;
         query.Clear();
         return(G1.GetInt(d.Rows[0][0]));
     }
     catch (Exception e)
     {
         Cmd.CommandText = null;
         query           = null;
         throw new Exception(nomeDoMetodo + " - " + e.Message, e.InnerException);
     }
 }
コード例 #14
0
 public bool RegistroExiste(string nomeTabela,
                            string nomeColuna  = null, object valor  = null,
                            string nomeColuna2 = null, object valor2 = null,
                            string nomeColuna3 = null, object valor3 = null)
 {
     try
     {
         bool existe = false;
         Query("Select Count(*) as Existe From ", true);
         Query(nomeTabela);
         if (!G1.Nada(nomeColuna) && !G1.Nada(Convert.ToString(valor)))
         {
             Param("@v", valor);
             Query($" Where {nomeColuna} = @v ");
             if (!G1.Nada(nomeColuna2) && !G1.Nada(Convert.ToString(valor2)))
             {
                 Param("@v2", valor2);
                 Query($" And {(nomeColuna2)} = @v2 ");
                 if (!G1.Nada(nomeColuna3) && !G1.Nada(Convert.ToString(valor3)))
                 {
                     Param("@v3", valor3);
                     Query($" And {nomeColuna3} = @v3");
                 }
             }
         }
         Cmd.CommandText = Convert.ToString(query);
         SqlDataReader dr = Cmd.ExecuteReader();
         if (dr.Read())
         {
             existe = G1.GetBool(dr["Existe"]);
         }
         dr.Close();
         dr.Dispose();
         Cmd.CommandText = null;
         query.Clear();
         return(existe);
     }
     catch (Exception e) { throw e; }
 }
コード例 #15
0
        /// <summary>michele, 14/12/2014 - coloca where ou and na query, ignorando as ocorrencias do where que podem ter havido na subquery</summary>
        public string WhereAndSubQuery(string trechoQuery = null)
        {
            StringBuilder whereAnd             = new StringBuilder();
            string        queryCompleta        = Convert.ToString(query);
            int           indiceUltimaSubQuery = queryCompleta.LastIndexOf(")");
            string        queryIni             = G1.GetSubstringLeft(queryCompleta, indiceUltimaSubQuery);
            string        queryFim             = queryCompleta.Replace(queryIni, "");

            if (queryFim.ToUpper().IndexOf(" WHERE ") < 0)
            {
                whereAnd.Append(" Where ");
            }
            else
            {
                whereAnd.Append(" And ");
            }
            if (trechoQuery != null)
            {
                whereAnd.Append(trechoQuery); //concatena o trecho da query
            }
            whereAnd.Append(" ");             //coloca espaço no final da expressão para evitar erros
            return(Convert.ToString(whereAnd));
        }
コード例 #16
0
ファイル: G1.cs プロジェクト: MARTINSMICHELES/TESTE-WIPRO
 /// <summary>michele, 01/06/2014 - retorna um número inteiro</summary>
 public static int GetInt(object valor, bool isNullRetorna1Negativo = false)
 {
     try
     {
         if (G1.Nada(valor))
         {
             return(isNullRetorna1Negativo ? -1 : 0);
         }
         int numero = 0;
         var tipo   = valor.GetType().ToString().ToLower().Replace("system.", "");
         if (tipo == "dbnull")
         {
             return(0);
         }
         if (valor is bool || tipo == "int16")
         {
             numero = Convert.ToInt16(valor);
         }
         else if (tipo == "int32" || tipo == "int64" || tipo == "double" || tipo == "decimal" || tipo == "float")
         {
             numero = Convert.ToInt32(valor);
         }
         else if (tipo == "string")
         {
             string v = Convert.ToString(valor).ToLower();
             if (Nada(v))
             {
                 if (isNullRetorna1Negativo)
                 {
                     return(-1);
                 }
                 else
                 {
                     return(0);
                 }
             }
             if (v == "sim" || v == "s" || v == "ativo" || v == "true")
             {
                 return(1);
             }
             else if (v == "não" || v == "n" || v == "inativo" || v == "false")
             {
                 return(0);
             }
             else
             {
                 numero = int.Parse(valor.ToString());
             }
         }
         //if (numero  is int) numero = int.Parse(valor.ToString());
         if (numero >= -32768 && numero <= 32767)
         {
             return(Convert.ToInt16(numero));
         }
         else
         {
             return(Convert.ToInt32(numero));
         }
         //return numero;
     }
     catch (Exception)
     {
         return(0);//retorna 0 se algo der errado na conversão
     }
 }