public static IList RecuperaObjetosPorTipo(String pOID)
        {
            IList           listFuncionarios         = new ArrayList();
            SqlConnection   objConexao               = FabricaConexao.getConexao();
            String          strQuery                 = "SELECT ID, Nome, CPF, DepartamentoOID FROM Funcionario WHERE DepartamentoOID = '" + pOID + "'";
            SqlCommand      objCommand               = new SqlCommand(strQuery, objConexao);
            cntrApartamento objControllerApartamento = new cntrApartamento();
            SqlDataReader   objLeitor2;

            try
            {
                objCommand.ExecuteNonQuery();
                SqlDataReader objLeitor = objCommand.ExecuteReader();
                while (objLeitor.Read())
                {
                    //Verificar Tipo do Funcionário e Recuperar o Restante do Funcionário
                    //Tentar em Todos os Filhos, até encontrar a Chave Primária Estrangeira Igual
                    strQuery   = "SELECT ID, NumDiasTrabalhados,NumHorasDiaTrabalhado, ValorHora FROM FuncionarioHorista WHERE ID = '" + objLeitor[0] + "'";
                    objCommand = new SqlCommand(strQuery, objConexao);
                    objCommand.ExecuteNonQuery();
                    objLeitor2 = objCommand.ExecuteReader();
                    while (objLeitor2.Read())
                    {
                        Morador objFuncionario = new Morador();
                        objFuncionario.NumDiasTrabalhados    = Convert.ToInt32(objLeitor2[1]);
                        objFuncionario.NumHorasDiaTrabalhado = Convert.ToInt32(objLeitor2[2]);
                        objFuncionario.ValorHora             = Convert.ToInt32(objLeitor2[3]);
                        objFuncionario.Codigo       = Convert.ToString(objLeitor[0]);
                        objFuncionario.Nome         = Convert.ToString(objLeitor[1]);
                        objFuncionario.CPF          = Convert.ToString(objLeitor[2]);
                        objFuncionario.Departamento = objControllerApartamento.RecuperaObjetoObjeto(Convert.ToString(objLeitor[3]));
                        listFuncionarios.Add(objFuncionario);
                    }
                    //Fim Tentativas de Descobrir Tipo Funcionário
                }
                objLeitor.Close();
                return(listFuncionarios);
            }
            catch (SqlException err)
            {
                String strErro = "Erro: " + err.ToString();
                Console.Write(strErro);
                return(listFuncionarios);
            }
        }
 public static IList RecuperaObjetosPorTipo(String pOID)
 {
     IList listFuncionarios = new ArrayList();
     SqlConnection objConexao = FabricaConexao.getConexao();
     String strQuery = "SELECT ID, Nome, CPF, DepartamentoOID FROM Funcionario WHERE DepartamentoOID = '" + pOID + "'";
     SqlCommand objCommand = new SqlCommand(strQuery, objConexao);
     cntrApartamento objControllerApartamento = new cntrApartamento();
     SqlDataReader objLeitor2;
     try
     {
         objCommand.ExecuteNonQuery();
         SqlDataReader objLeitor = objCommand.ExecuteReader();
         while (objLeitor.Read())
         {
             //Verificar Tipo do Funcionário e Recuperar o Restante do Funcionário
             //Tentar em Todos os Filhos, até encontrar a Chave Primária Estrangeira Igual
             strQuery = "SELECT ID, NumDiasTrabalhados,NumHorasDiaTrabalhado, ValorHora FROM FuncionarioHorista WHERE ID = '" + objLeitor[0] + "'";
             objCommand = new SqlCommand(strQuery, objConexao);
             objCommand.ExecuteNonQuery();
             objLeitor2 = objCommand.ExecuteReader();
             while (objLeitor2.Read())
             {
                 Morador objFuncionario = new Morador();
                 objFuncionario.NumDiasTrabalhados = Convert.ToInt32(objLeitor2[1]);
                 objFuncionario.NumHorasDiaTrabalhado = Convert.ToInt32(objLeitor2[2]);
                 objFuncionario.ValorHora = Convert.ToInt32(objLeitor2[3]);
                 objFuncionario.Codigo = Convert.ToString(objLeitor[0]);
                 objFuncionario.Nome = Convert.ToString(objLeitor[1]);
                 objFuncionario.CPF = Convert.ToString(objLeitor[2]);
                 objFuncionario.Departamento = objControllerApartamento.RecuperaObjetoObjeto(Convert.ToString(objLeitor[3]));
                 listFuncionarios.Add(objFuncionario);
             }
             //Fim Tentativas de Descobrir Tipo Funcionário
         }
         objLeitor.Close();
         return listFuncionarios;
     }
     catch (SqlException err)
     {
         String strErro = "Erro: " + err.ToString();
         Console.Write(strErro);
         return listFuncionarios;
     }
 }