public static IList RecuperaObjetosPorApartamento(String pOID)
        {
            IList           listPessoas = new ArrayList();
            SqlConnection   objConexao  = FabricaConexao.FabricaConexao.getConexao();
            String          strQuery    = "SELECT ID, Nome, CPF, email, ApartamentoOID FROM Pessoa WHERE ApartamentoOID = '" + 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 objMorador = new Morador();
                        objMorador.IsResponsavel = Convert.ToBoolean(objLeitor2[1]);
                        objMorador.Id            = Convert.ToInt32(objLeitor2[3]);
                        objMorador.Email         = Convert.ToString(objLeitor[0]);
                        objMorador.Nome          = Convert.ToString(objLeitor[1]);
                        objMorador.Cpf           = Convert.ToString(objLeitor[2]);
                        objMorador.Apartamento   = objControllerApartamento.RecuperaObj(Convert.ToString(objLeitor[3]));

                        listPessoas.Add(objPessoa);
                    }
                    //Fim Tentativas de Descobrir Tipo Funcionário
                }
                objLeitor.Close();
                return(listPessoas);
            }
            catch (SqlException err)
            {
                String strErro = "Erro: " + err.ToString();
                Console.Write(strErro);
                return(listPessoas);
            }
        }
        public static Pessoa RecuperaObj(int pID)
        {
            SqlConnection   objConexao = FabricaConexao.getConexao();
            String          strQuery   = "SELECT ID, Nome, CPF, email FROM Pessoa WHERE ID = '" + pID + "'";
            SqlCommand      objCommand = new SqlCommand(strQuery, objConexao);
            cntrApartamento objControllerApartamento = new cntrApartamento();
            SqlDataReader   objLeitor2;
            Pessoa          objPessoa = null;
            Morador         objMorador;

            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, IsResponsavel, apartamento FROM Morador WHERE ID = '" + objLeitor[0] + "'";
                    objCommand = new SqlCommand(strQuery, objConexao);
                    objCommand.ExecuteNonQuery();
                    objLeitor2 = objCommand.ExecuteReader();
                    while (objLeitor2.Read())
                    {
                        objMorador = new Morador();
                        objMorador.IsResponsavel = Convert.ToBoolean(objLeitor2[1]);
                        objMorador.Id            = Convert.ToInt32(objLeitor2[3]);
                        objMorador.Email         = Convert.ToString(objLeitor[0]);
                        objMorador.Nome          = Convert.ToString(objLeitor[1]);
                        objMorador.Cpf           = Convert.ToString(objLeitor[2]);
                        objMorador.Apartamento   = objControllerApartamento.RecuperaObj(Convert.ToString(objLeitor[3]));
                        objPessoa = (Pessoa)objMorador;
                    }
                    //Fim Tentativas de Descobrir Tipo Funcionário
                }
                objLeitor.Close();
                return(objPessoa);
            }
            catch (SqlException err)
            {
                String strErro = "Erro: " + err.ToString();
                Console.Write(strErro);
                return(objPessoa);
            }
        }
 public static Pessoa RecuperaObj(int pID)
 {
     SqlConnection objConexao = FabricaConexao.getConexao();
     String strQuery = "SELECT ID, Nome, CPF, email FROM Pessoa WHERE ID = '" + pID + "'";
     SqlCommand objCommand = new SqlCommand(strQuery, objConexao);
     cntrApartamento objControllerApartamento = new cntrApartamento();
     SqlDataReader objLeitor2;
     Pessoa objPessoa = null;
     Morador objMorador;
     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, IsResponsavel, apartamento FROM Morador WHERE ID = '" + objLeitor[0] + "'";
             objCommand = new SqlCommand(strQuery, objConexao);
             objCommand.ExecuteNonQuery();
             objLeitor2 = objCommand.ExecuteReader();
             while (objLeitor2.Read())
             {
                 objMorador = new Morador();
                 objMorador.IsResponsavel = Convert.ToBoolean(objLeitor2[1]);
                 objMorador.Id = Convert.ToInt32(objLeitor2[3]);
                 objMorador.Email = Convert.ToString(objLeitor[0]);
                 objMorador.Nome = Convert.ToString(objLeitor[1]);
                 objMorador.Cpf = Convert.ToString(objLeitor[2]);
                 objMorador.Apartamento = objControllerApartamento.RecuperaObj(Convert.ToString(objLeitor[3]));
                 objPessoa = (Pessoa)objMorador;
             }
             //Fim Tentativas de Descobrir Tipo Funcionário
         }
         objLeitor.Close();
         return objPessoa;
     }
     catch (SqlException err)
     {
         String strErro = "Erro: " + err.ToString();
         Console.Write(strErro);
         return objPessoa;
     }
 }
 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;
     }
 }