public VagaDto Add(VagaDto dtoVaga) { if (dtoVaga == null) { throw new Exception("Informe os dados da Vaga a ser adicionada."); } if (string.IsNullOrWhiteSpace(dtoVaga.Descricao)) { throw new Exception("Não foi informado o nome da Vaga."); } VerificaNomeUnico(dtoVaga); if (!dtoVaga.ListaVagaTecnologia.Any()) { throw new Exception("Não foi informado nenhuma Tecnologia para esta Vaga."); } Vaga novaVaga = new Vaga(); novaVaga.Descricao = dtoVaga.Descricao; VincularTecnologia(dtoVaga, novaVaga); rhUow.Vaga.Add(novaVaga); rhUow.Commit(); return((VagaDto)novaVaga); }
public List <CandidatoNotaDto> CalcularClassificacao(VagaDto dtoVaga) { if (dtoVaga == null) { throw new ServiceException("Informe os dados da Vaga a ser atualizada."); } if (dtoVaga.VagaId == 0) { throw new ServiceException("Informe o Identificador da Vaga."); } List <Entrevista> listEntrevista = rhUow.Entrevista.GetAll(t => t.Candidato, t => t.ListaEntrevistaTecnologia).Where(t => t.VagaId == dtoVaga.VagaId).ToList(); List <CandidatoNotaDto> listaCandidato = new List <CandidatoNotaDto>(); foreach (var i in listEntrevista) { var candidatoAtual = (CandidatoNotaDto)i.Candidato; foreach (var entrevistaTecnologia in i.ListaEntrevistaTecnologia) { var vagaTecnologia = rhUow.VagaTecnologia.GetById(entrevistaTecnologia.VagaTecnologiaId); var vagaPesoAtual = dtoVaga.ListaVagaTecnologia.FirstOrDefault(t => t.TecnologiaId == vagaTecnologia.TecnologiaId); if (entrevistaTecnologia != null) { candidatoAtual.Total += vagaPesoAtual.Peso.Value; } } listaCandidato.Add(candidatoAtual); } return(listaCandidato.OrderByDescending(t => t.Total).ToList()); }
/// <summary> /// Método responsável por vincular as Tecnologias Informadas a Vaga a ser criada. /// </summary> /// <param name="dtoVaga">Dto da Vaga que está sendo criada.</param> /// <param name="novaVaga">Nova vaga criada para vinculá-la as tecnologias.</param> private void VincularTecnologia(VagaDto dtoVaga, Vaga novaVaga) { foreach (var vagaTecnologiaAtual in dtoVaga.ListaVagaTecnologia) { VagaTecnologia vagaTecnologia = new VagaTecnologia(); vagaTecnologia.TecnologiaId = vagaTecnologiaAtual.TecnologiaId; novaVaga.ListaVagaTecnologia.Add(vagaTecnologia); } }
public VagaDto Get(int vagaId) { Vaga vaga = rhUow.Vaga.GetById(vagaId); vaga.ListaVagaTecnologia = rhUow.VagaTecnologia.GetAll().Where(t => t.VagaId == vagaId).ToList(); vaga.ListaEntrevista = rhUow.Entrevista.GetAll().Where(t => t.VagaId == vagaId).ToList(); VagaDto dto = (VagaDto)vaga; return(dto); }
/// <summary> /// Método responsável por verificar se já existe uma Vaga cadastrada com esta Descrição. /// </summary> /// <param name="dtoVaga">Dados da vaga a ser verificado.</param> private void VerificaNomeUnico(VagaDto dtoVaga) { bool vagaDiferente = rhUow.Vaga.GetAll() .Any(t => t.Descricao == dtoVaga.Descricao && t.VagaId != dtoVaga.VagaId); if (vagaDiferente) { throw new Exception("Já existe uma Vaga com esta Descrição. Favor digite um nome Diferente."); } }
public IActionResult Get(int id) { try { VagaDto dto = vagaService.Get(id); if (dto != null) { return(Ok(dto)); } else { return(NotFound(id)); } } catch (Exception ex) { _logger.LogCritical(ex, string.Format("Houve um erro ao buscar uma Vaga ID {0}.", id)); return(StatusCode(500)); } }
public IActionResult Put([FromBody] VagaDto dto) { try { VagaDto VagaAtualizada = vagaService.Update(dto); if (VagaAtualizada != null) { return(Ok(VagaAtualizada)); } else { return(NotFound()); } } catch (Exception ex) { _logger.LogCritical(ex, string.Format("Houve um erro ao atualizar uma Vaga {0}.", dto)); return(StatusCode(500)); } }
public IActionResult Post([FromBody] VagaDto dto) { try { VagaDto novaVaga = vagaService.Add(dto); if (novaVaga != null) { return(Ok(novaVaga)); } else { return(NotFound()); } } catch (Exception ex) { _logger.LogCritical(ex, string.Format("Houve um erro ao cadastrar uma Vaga {0}.", dto)); return(StatusCode(500)); } }
public IActionResult CalcularClassificacao([FromBody] VagaDto dto) { try { List <CandidatoNotaDto> lista = vagaService.CalcularClassificacao(dto); if (lista.Any()) { return(Ok(lista)); } else { return(NotFound()); } } catch (Exception ex) { _logger.LogCritical(ex, string.Format("Houve um erro ao atualizar uma Vaga {0}.", dto)); return(StatusCode(500)); } }
public VagaDto Update(VagaDto dtoVagaAtualizar) { if (dtoVagaAtualizar == null) { throw new ServiceException("Informe os dados da Vaga a ser atualizada."); } if (dtoVagaAtualizar.VagaId == 0) { throw new ServiceException("Informe o Identificador da Vaga."); } if (string.IsNullOrWhiteSpace(dtoVagaAtualizar.Descricao)) { throw new ServiceException("Informe o Nome da Vaga a ser atualizada."); } VerificaNomeUnico(dtoVagaAtualizar); Vaga vagaAtualizar = rhUow.Vaga.GetById(dtoVagaAtualizar.VagaId); VerificaVinculos(vagaAtualizar); List <VagaTecnologia> tecnologiasVaga = vagaAtualizar.ListaVagaTecnologia.ToList(); foreach (var tec in tecnologiasVaga) { vagaAtualizar.ListaVagaTecnologia.Remove(tec); } vagaAtualizar.Descricao = dtoVagaAtualizar.Descricao; VincularTecnologia(dtoVagaAtualizar, vagaAtualizar); rhUow.Vaga.Update(vagaAtualizar); rhUow.Commit(); return((VagaDto)vagaAtualizar); }