Ejemplo n.º 1
0
        public void Factoty_Test(object objj)
        {
            IDAOBaseElement obj = DAOFactory.getInstance().CreateInstance(objj.GetType().Name);
            Type            t   = obj.GetType();
            Type            tt  = objj.GetType();

            Assert.IsType(tt, obj);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Method for reading table
        /// </summary>
        /// <param name="typeTable">table type</param>
        /// <param name="connectionString">connection string to sql server</param>
        /// <returns>T DBSet</returns>
        public IEnumerable <T> ReadTable(Type typeTable, string connectionString)
        {
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                string command = $"SELECT * FROM [{typeTable.Name}]";

                SqlCommand cmd = new SqlCommand(command);

                cmd.Connection = conn;
                conn.Open();
                SqlDataReader reader = cmd.ExecuteReader();

                var list = new List <T>();

                IDAOBaseElement obj = DAOFactory.getInstance().CreateInstance(typeTable.Name);

                int columnsNumber = reader.FieldCount;

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        for (var i = 0; i < columnsNumber; i++)
                        {
                            string       fieldName = reader.GetName(i);
                            PropertyInfo propInfo  = obj.GetType().GetProperty(fieldName);
                            propInfo?.SetValue(obj, reader.GetValue(i));
                        }

                        list.Add((T)obj);
                        obj = DAOFactory.getInstance().CreateInstance(typeTable.Name);
                    }
                }

                return(list);
            }
        }