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); }
/// <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); } }