public List<ListarVagasViewModel> ListarVagasDaEmpresa(int idEmpresa) { try { List<ListarVagasViewModel> listvagas = new List<ListarVagasViewModel>(); // Declara a SqlConnection passando a string de conexão using (SqlConnection con = new SqlConnection(stringConexao)) { // Declara a instrução a ser executada string querySelectAll = "SELECT U.CaminhoImagem,v.DataExpiracao,trp.NomeTipoRegimePresencial,are.NomeArea,v.TituloVaga,e.RazaoSocial,v.IdVaga,t.NomeTecnologia,v.Experiencia,v.TipoContrato,v.Salario,v.Localidade FROM VagaTecnologia" + " INNER JOIN Vaga v on v.IdVaga = VagaTecnologia.IdVaga" + " INNER JOIN Tecnologia t on t.IdTecnologia = VagaTecnologia.IdTecnologia" + " INNER JOIN Empresa e on e.IdEmpresa = v.IdEmpresa" + " INNER JOIN Usuario U ON U.IdUsuario=e.IdUsuario" + " INNER JOIN Area are on are.IdArea=v.IdArea" + " INNER JOIN TipoRegimePresencial trp on trp.IdTipoRegimePresencial=v.IdTipoRegimePresencial" + " WHERE e.IdEmpresa =@IDEmpresa"; con.Open(); // Declara o SqlDataReader para receber os dados do banco de dados SqlDataReader rdr; // Declara o SqlCommand passando o comando a ser executado e a conexão using (SqlCommand cmd = new SqlCommand(querySelectAll, con)) { cmd.Parameters.AddWithValue("@IDEmpresa", idEmpresa); // Executa a query e armazena os dados no rdr rdr = cmd.ExecuteReader(); // Enquanto houver registros para serem lidos no rdr, o laço se repete while (rdr.Read()) { bool teveAcao = false; // Instancia um objeto jogo ListarVagasViewModel vm = new ListarVagasViewModel { // Atribui às propriedades os valores das colunas da tabela do banco IdVaga = Convert.ToInt32(rdr["IdVaga"]), Experiencia = rdr["Experiencia"].ToString(), TipoContrato = rdr["TipoContrato"].ToString(), CaminhoImagem = rdr["CaminhoImagem"].ToString(), Localidade = rdr["Localidade"].ToString(), Salario = Convert.ToDecimal(rdr["Salario"]), RazaoSocial = rdr["RazaoSocial"].ToString(), NomeArea = rdr["NomeArea"].ToString(), TituloVaga = rdr["TituloVaga"].ToString(), TipoPresenca = rdr["NomeTipoRegimePresencial"].ToString(), DataExpiracao = Convert.ToDateTime(rdr["DataExpiracao"]).ToString("dd/MM/yyyy") }; var NomeTecnologia = rdr["NomeTecnologia"].ToString(); vm.Tecnologias = new List<string>(); for (int i = 0; i < listvagas.Count; i++) { if (vm.IdVaga == listvagas[i].IdVaga) { listvagas[i].Tecnologias.Add(NomeTecnologia); teveAcao = true; } } if (teveAcao == true) continue; else vm.Tecnologias.Add(NomeTecnologia); // Adiciona a vaga criada à lista de vagas listvagas.Add(vm); } } } // Retorna a lista de vagas return listvagas; } catch (Exception) { return null; } }
public List <ListarVagasViewModel> ListarInscricoes(int idUsuario) { using (DbSenaiContext ctx = new DbSenaiContext()) { try { Candidato candidato = ctx.Candidato.FirstOrDefault(c => c.IdUsuario == idUsuario); if (candidato == null) { return(null); } List <Inscricao> ListaDeInscricoes = ctx.Inscricao.Where(v => v.IdCandidato == candidato.IdCandidato).ToList(); if (ListaDeInscricoes == null) { return(null); } List <ListarVagasViewModel> listvagas = new List <ListarVagasViewModel>(); for (int i = 0; i < ListaDeInscricoes.Count; i++) { // Declara a SqlConnection passando a string de conexão using (SqlConnection con = new SqlConnection(stringConexao)) { // Declara a instrução a ser executada string querySelectAll = "SELECT U.CaminhoImagem,inscri.DataInscricao,trp.NomeTipoRegimePresencial,inscri.IdInscricao,are.NomeArea,v.TituloVaga,e.RazaoSocial,v.IdVaga,t.NomeTecnologia,v.Experiencia,v.TipoContrato,v.Salario,v.Localidade FROM VagaTecnologia" + " INNER JOIN Vaga v on v.IdVaga = VagaTecnologia.IdVaga" + " INNER JOIN Tecnologia t on t.IdTecnologia = VagaTecnologia.IdTecnologia" + " INNER JOIN Empresa e on e.IdEmpresa = v.IdEmpresa" + " INNER JOIN Area are on are.IdArea=v.IdArea" + " INNER JOIN Usuario U ON U.IdUsuario=e.IdUsuario" + " INNER JOIN Inscricao inscri on inscri.IdVaga=v.IdVaga" + " INNER JOIN TipoRegimePresencial trp on trp.IdTipoRegimePresencial=v.IdTipoRegimePresencial" + " WHERE v.IdVaga =@IDVaga AND inscri.IdInscricao=@IDInscricao "; con.Open(); // Declara o SqlDataReader para receber os dados do banco de dados SqlDataReader rdr; // Declara o SqlCommand passando o comando a ser executado e a conexão using (SqlCommand cmd = new SqlCommand(querySelectAll, con)) { cmd.Parameters.AddWithValue("@IDVaga", ListaDeInscricoes[i].IdVaga); cmd.Parameters.AddWithValue("@IDInscricao", ListaDeInscricoes[i].IdInscricao); // Executa a query e armazena os dados no rdr rdr = cmd.ExecuteReader(); // Enquanto houver registros para serem lidos no rdr, o laço se repete while (rdr.Read()) { bool teveAcao = false; // Instancia um objeto jogo ListarVagasViewModel vm = new ListarVagasViewModel { // Atribui às propriedades os valores das colunas da tabela do banco IdVaga = Convert.ToInt32(rdr["IdVaga"]), Experiencia = rdr["Experiencia"].ToString(), CaminhoImagem = rdr["CaminhoImagem"].ToString(), TipoContrato = rdr["TipoContrato"].ToString(), IdInscricao = Convert.ToInt32(rdr["IdInscricao"]), Localidade = rdr["Localidade"].ToString(), DataInscricao = Convert.ToDateTime(rdr["DataInscricao"]).ToString("dd/MM/yyyy"), Salario = Convert.ToDecimal(rdr["Salario"]), RazaoSocial = rdr["RazaoSocial"].ToString(), NomeArea = rdr["NomeArea"].ToString(), TituloVaga = rdr["TituloVaga"].ToString(), TipoPresenca = rdr["NomeTipoRegimePresencial"].ToString() }; var NomeTecnologia = rdr["NomeTecnologia"].ToString(); vm.Tecnologias = new List <string>(); for (int e = 0; e < listvagas.Count; e++) { if (vm.IdVaga == listvagas[e].IdVaga) { listvagas[e].Tecnologias.Add(NomeTecnologia); teveAcao = true; } } if (teveAcao == true) { continue; } else { vm.Tecnologias.Add(NomeTecnologia); } // Adiciona a vaga criada à lista de vagas listvagas.Add(vm); } } } } return(listvagas); } catch (Exception) { return(null); } } }