Пример #1
0
        public static List <object> ListaObjeto(SqlDataReader dadosTabela, object entidade, Type tipo, List <string> colunas = null)
        {
            PropertyInfo[] propertyInfo = DefineColunasCarregadas(colunas, tipo);
            var            lista        = new List <object>();

            if (propertyInfo.Count() > 0)
            {
                while (dadosTabela.Read())
                {
                    entidade = Activator.CreateInstance(tipo);

                    foreach (var property in propertyInfo)
                    {
                        var nomeColuna = Valida.NomeColuna(property);

                        var valor = dadosTabela[nomeColuna] != DBNull.Value ? dadosTabela[nomeColuna] : null;

                        property.SetValue(entidade, valor, null);
                    }

                    lista.Add(entidade);
                }
            }

            return(lista);
        }
Пример #2
0
        public static void Consulta(out string comandoSQL, Type tipo, TipoConsulta tipoConsulta, int?top = null, string colunas = "*", string parametros = "", string condicoes = "")
        {
            string nomeTabela = Valida.NomeTabela(tipo);

            switch (tipoConsulta)
            {
            case TipoConsulta.Select:
                string topLinhas;
                TopLinhas(top, out topLinhas);
                comandoSQL = $"SELECT{topLinhas}{colunas} FROM {nomeTabela} {condicoes};";
                break;

            case TipoConsulta.Definicao:
                comandoSQL = $"SELECT ID = (COLUMNPROPERTY(OBJECT_ID(B.TABLE_SCHEMA + '.' + B.TABLE_NAME), COLUMN_NAME, 'IsIdentity')) FROM " +
                             $"INFORMATION_SCHEMA.KEY_COLUMN_USAGE A INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS B ON A.CONSTRAINT_NAME = B.CONSTRAINT_NAME " +
                             $"WHERE CONSTRAINT_TYPE = 'PRIMARY KEY' AND B.TABLE_NAME = '{nomeTabela}';";
                break;

            case TipoConsulta.Insert:
                comandoSQL = $"INSERT INTO {nomeTabela} ({colunas}) VALUES ({parametros}){condicoes}";
                break;

            case TipoConsulta.Update:
                comandoSQL = $"UPDATE {nomeTabela} SET {parametros} WHERE {condicoes}";
                break;

            case TipoConsulta.Delete:
                comandoSQL = $"DELETE {nomeTabela} WHERE {condicoes}";
                break;

            default:
                comandoSQL = "";
                break;
            }
        }
Пример #3
0
        private static PropertyInfo[] DefineColunasCarregadas(List <string> colunas, Type tipo)
        {
            PropertyInfo[] propertyInfo = tipo.GetProperties().Where(x => Valida.Coluna(x) != null || Valida.PrimaryKey(x) != null || Valida.ForeignKey(x) != null).ToArray();

            if (colunas != null && colunas[0] != "*")
            {
                propertyInfo = propertyInfo.Where(x => colunas.Contains(x.Name)).ToArray();
            }

            return(propertyInfo);
        }
Пример #4
0
        public static List <string> Parametros(object entidade, Type tipo, HydraParameters parametros, PropertyInfo[] colunas)
        {
            List <string> listaNomeColunas = new List <string>();

            foreach (var coluna in colunas)
            {
                var nomeColuna = Valida.NomeColuna(coluna);
                var valor      = entidade.GetType().GetProperty(coluna.Name).GetValue(entidade, null);

                parametros.Add(nomeColuna, valor);
                listaNomeColunas.Add(nomeColuna);
            }

            return(listaNomeColunas);
        }
Пример #5
0
        public static void ColunasDataTable(DataTable dataTable, Type tipo)
        {
            PropertyInfo[] propertyInfo = tipo.GetProperties().Where(x => Valida.Coluna(x) != null || Valida.PrimaryKey(x) != null).ToArray();

            foreach (PropertyInfo propriedade in propertyInfo)
            {
                string nomeColuna = Valida.NomeColuna(propriedade);

                Type tipoColuna = propriedade.PropertyType;

                tipoColuna = Valida.TipoNull(tipoColuna);

                DataColumn dataColumn = new DataColumn(nomeColuna, tipoColuna);

                dataTable.Columns.Add(dataColumn);
            }
        }
Пример #6
0
        public static List <HydraTuple <T1, T2> > ListaDuasTuple <T1, T2>(SqlDataReader dadosTabela)
        {
            var lista      = new List <HydraTuple <T1, T2> >();
            var tipoTupla1 = Valida.TipoNull(typeof(T1));
            var tipoTupla2 = Valida.TipoNull(typeof(T2));

            T1 Tupla1;
            T2 Tupla2;

            while (dadosTabela.Read())
            {
                Tupla1 = NovaInstancia <T1>(tipoTupla1, dadosTabela[0]);
                Tupla2 = NovaInstancia <T2>(tipoTupla2, dadosTabela[1]);

                lista.Add(HydraTuple.New(Tupla1, Tupla2));
            }

            return(lista);
        }
Пример #7
0
        public static object Objeto(SqlDataReader dadosTabela, object entidade, Type tipo, List <string> colunas = null)
        {
            PropertyInfo[] propertyInfo = DefineColunasCarregadas(colunas, tipo);

            if (propertyInfo.Count() > 0)
            {
                while (dadosTabela.Read())
                {
                    foreach (var property in propertyInfo)
                    {
                        var nomeColuna = Valida.NomeColuna(property);

                        var valor = dadosTabela[nomeColuna] != DBNull.Value ? dadosTabela[nomeColuna] : null;

                        property.SetValue(entidade, valor, null);
                    }
                }
            }

            return(entidade);
        }
Пример #8
0
        public static List <T> DataTableEmList <T>(DataTable dataTable)
        {
            var lista = new List <T>();
            var tipo  = typeof(T);

            List <string> colunas = dataTable.Columns.Cast <DataColumn>().Select(x => x.ColumnName).ToList();

            PropertyInfo[] propertyInfo = DefineColunasCarregadas(colunas, tipo);

            T entidade;

            foreach (var row in dataTable.Rows.Cast <DataRow>())
            {
                entidade = CriaIstancia <T>(tipo);

                if (propertyInfo.Count() > 0)
                {
                    foreach (var property in propertyInfo)
                    {
                        var nomeColuna = Valida.NomeColuna(property);

                        var valor = row[nomeColuna] != DBNull.Value ? row[nomeColuna] : null;

                        property.SetValue(entidade, valor, null);
                    }
                }
                else
                {
                    var valor = row[0] != DBNull.Value ? row[0] : null;

                    object genericoTipificado = valor;

                    entidade = (T)Convert.ChangeType(genericoTipificado, typeof(T));
                }

                lista.Add(entidade);
            }

            return(lista);
        }
Пример #9
0
        public static List <T> Lista <T>(SqlDataReader dadosTabela, List <string> colunas = null)
        {
            var lista = new List <T>();
            var tipo  = typeof(T);

            PropertyInfo[] propertyInfo = DefineColunasCarregadas(colunas, tipo);

            T entidade;

            while (dadosTabela.Read())
            {
                entidade = CriaIstancia <T>(tipo);

                if (propertyInfo.Count() > 0)
                {
                    foreach (var property in propertyInfo)
                    {
                        var nomeColuna = Valida.NomeColuna(property);

                        var valor = dadosTabela[nomeColuna] != DBNull.Value ? dadosTabela[nomeColuna] : null;

                        property.SetValue(entidade, valor, null);
                    }
                }
                else
                {
                    var valor = dadosTabela[0] != DBNull.Value ? dadosTabela[0] : null;

                    object genericoTipificado = valor;

                    entidade = (T)Convert.ChangeType(genericoTipificado, typeof(T));
                }

                lista.Add(entidade);
            }

            return(lista);
        }