Example #1
0
        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);
        }
Example #2
0
        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);
        }