public VagaDetalhe PegarVagaDetalhada(Guid vagaId) { VagaDetalhe vaga = Repository.GetVagaDetalhe(vagaId); foreach (var candidato in vaga.Candidatos) { candidato.Pontuacao = CalculaPontuacaoCandidato(vaga.Criterios, candidato.ParValorCriterio); } vaga.Candidatos = vaga.Candidatos.OrderBy(item => item.Pontuacao).Reverse().ToList(); vaga.PerfilMinimoDesejado = CalculaPerfilMinimoDesejado(vaga.Criterios); return(vaga); }
public VagaDetalhe GetVagaDetalhe(Guid vagaId) { string[] propNavLista = new string[] { }; // { "Respostas.Candidato.Usuario", "Respostas.RespostaCriterios" }; var query = this.Query.Where(vaga => vaga.Id == vagaId); if (propNavLista != null && propNavLista.Any()) { query = this.AddIncludes(query, propNavLista); } VagaDetalhe result = query .Select(vaga => new VagaDetalhe() { DataExpiracao = vaga.DataExpiracao, Finalizada = vaga.Finalizada, EmpresaId = vaga.EmpresaId, TotalCandidatos = vaga.Respostas.Count, Criterios = vaga.Criterios, Candidatos = vaga.Respostas.Select(resp => new CandidatoRanqueado() { CandidatoId = resp.CandidatoId, Email = resp.Candidato.Usuario.Email, Nome = resp.Candidato.Usuario.Nome, Telefone = "(--) ----- ----", Pontuacao = decimal.Zero, ParValorCriterio = resp.RespostaCriterios.Select(rc => new ParValorCriterio() { IdCriterio = rc.CriterioId, ValorReposta = rc.Valor }).ToList() }).ToList() }).FirstOrDefault(); //result. return(result); }