public IEnumerable <VagaMatchViewModel> GetPropsById(int id) { List <Tecnologia> tecnologias = ctx.Tecnologia.Where(t => t.IdVaga == id).ToList(); List <Vaga> vagas = ctx.Vaga .Include(v => v.IdAreaAtuacaoNavigation) .Include(v => v.IdRegimeContratacaoNavigation) .Include(v => v.IdRemotoNavigation) .Include(v => v.IdEmpresaNavigation) .Include(v => v.Beneficios) .Include(v => v.Tecnologia) .Where(v => v.IdVaga == id) .ToList(); List <VagaMatchViewModel> vagasMatch = new List <VagaMatchViewModel>(); List <Tecnologia> tecnologiasName = new List <Tecnologia>(); List <Tecnologia> listaTecnologia = new List <Tecnologia>(); foreach (var item in vagas) { List <string> beneficiosName = new List <string>(); foreach (var beneficios in item.Beneficios) { beneficiosName.Add(beneficios.NomeBeneficios); } VagaMatchViewModel vagaMatchViewModel = new VagaMatchViewModel { IdVaga = item.IdVaga, Titulo = item.Titulo, DescricaoAtividades = item.DescricaoAtividades, DescricaoRequisitos = item.DescricaoRequisitos, Localidade = item.Localidade, Empresa = item.IdEmpresaNavigation.NomeFantasia, Remoto = item.IdRemotoNavigation.NomeRemoto, AreaAtuacaoVaga = item.IdAreaAtuacaoNavigation.NomeAreaAtuacao, RegimeContratacao = item.IdRegimeContratacaoNavigation.NomeRegimeContratacao, Salario = item.IdRegimeContratacaoNavigation.ExpectativaSalario, Beneficios = beneficiosName }; foreach (var tecnologia in tecnologias) { if (tecnologia.IdVaga == item.IdVaga) { Tecnologia newTecnologia = new Tecnologia { IdTecnologia = tecnologia.IdTecnologia, NomeTecnologia = tecnologia.NomeTecnologia, IdVaga = tecnologia.IdVaga }; listaTecnologia.Add(newTecnologia); } } ; List <Tecnologia> tecnologiaVaga = new List <Tecnologia>(); foreach (var tecnologia in listaTecnologia) { if (tecnologia.IdVaga == vagaMatchViewModel.IdVaga) { tecnologiaVaga.Add(tecnologia); } } vagaMatchViewModel.Tecnologia = tecnologiaVaga; vagasMatch.Add(vagaMatchViewModel); } return(vagasMatch); }
public IEnumerable <VagaMatchViewModel> VagaSugest(int id) { List <Tecnologia> tecnologias = ctx.Tecnologia.ToList(); var user = ctx.Usuario .Include(u => u.IdPreferenciasTrabalhoNavigation) .Include(u => u.IdPreferenciasTrabalhoNavigation.IdRegimeContratacaoNavigation) .Include(u => u.IdEnderecoNavigation) .Include(u => u.IdAreaAtuacaoNavigation) .FirstOrDefault(u => u.IdUsuario == id); List <Vaga> vagas = ctx.Vaga .Include(v => v.IdAreaAtuacaoNavigation) .Include(v => v.IdRegimeContratacaoNavigation) .Include(v => v.IdRemotoNavigation) .Include(v => v.IdEmpresaNavigation) .Include(v => v.Beneficios) .Include(v => v.Tecnologia) .ToList(); List <VagaMatchViewModel> vagasMatch = new List <VagaMatchViewModel>(); var pontucao = 0; foreach (var item in vagas) { if (user.IdEnderecoNavigation.Localidade.ToLower() == item.Localidade.ToLower()) { pontucao++; } if (user.IdAreaAtuacaoNavigation.NomeAreaAtuacao.ToLower() == item.IdAreaAtuacaoNavigation.NomeAreaAtuacao.ToLower()) { pontucao++; } if (user.IdPreferenciasTrabalhoNavigation.IdRegimeContratacaoNavigation.ExpectativaSalario.Length >= item.IdRegimeContratacaoNavigation.ExpectativaSalario.Length) { pontucao++; } if (user.IdPreferenciasTrabalhoNavigation.IdRegimeContratacaoNavigation.NomeRegimeContratacao.ToLower() == item.IdRegimeContratacaoNavigation.NomeRegimeContratacao) { pontucao++; } if (user.IdPreferenciasTrabalhoNavigation.IdRemoto == item.IdRemoto) { pontucao++; } if (pontucao >= 3) { List <Tecnologia> tecnologiasName = new List <Tecnologia>(); List <Tecnologia> listaTecnologia = new List <Tecnologia>(); List <string> beneficiosName = new List <string>(); foreach (var beneficios in item.Beneficios) { beneficiosName.Add(beneficios.NomeBeneficios); } VagaMatchViewModel vagaMatchViewModel = new VagaMatchViewModel { IdVaga = item.IdVaga, Titulo = item.Titulo, DescricaoAtividades = item.DescricaoAtividades, DescricaoRequisitos = item.DescricaoRequisitos, Localidade = item.Localidade, Empresa = item.IdEmpresaNavigation.NomeFantasia, Remoto = item.IdRemotoNavigation.NomeRemoto, AreaAtuacaoVaga = item.IdAreaAtuacaoNavigation.NomeAreaAtuacao, RegimeContratacao = item.IdRegimeContratacaoNavigation.NomeRegimeContratacao, Salario = item.IdRegimeContratacaoNavigation.ExpectativaSalario, Beneficios = beneficiosName }; foreach (var tecnologia in tecnologias) { if (tecnologia.IdVaga == vagaMatchViewModel.IdVaga) { Tecnologia newTecnologia = new Tecnologia { NomeTecnologia = tecnologia.NomeTecnologia, IdVaga = tecnologia.IdVaga }; listaTecnologia.Add(newTecnologia); } } vagaMatchViewModel.Tecnologia = listaTecnologia; vagasMatch.Add(vagaMatchViewModel); } } return(vagasMatch); }