/// <summary> /// Metodo responsavel por adicionar o candidato a lista de ranking com o score do candidato para a vaga /// </summary> /// <param name="vaga">Dados da vaga</param> /// <param name="pessoa">Dados do candidato</param> /// <returns>Status de registro da ranking do candidato a vaga</returns> public async Task <bool> AddRankingVaga(Vaga vaga, Pessoa pessoa) { Ranking model = new Ranking(); CandidateScore calculate = new CandidateScore(); JobLevelParser parser = new JobLevelParser(); Enum.TryParse(pessoa.Localizacao, out Location candidateLocation); Enum.TryParse(vaga.Localizacao, out Location jobLocation); ExperienceLevel candidateLevel = parser.Parse(pessoa.Nivel); ExperienceLevel jobLevel = parser.Parse(vaga.Nivel); int score = calculate.CalculateCandidateScore(candidateLocation, candidateLevel, jobLocation, jobLevel); model.IdVaga = vaga.ID; model.Localizacao = pessoa.Localizacao; model.Nivel = pessoa.Nivel; model.Nome = pessoa.Nome; model.Profissao = pessoa.Profissao; model.Score = score; return(await _repository.AddRankingVaga(model)); }