public SaveCandidatoResponse SaveCandidato(CreateEditCandidatoViewModel candidatoViewModel) { var response = new SaveCandidatoResponse(); try { if (candidatoViewModel.CandidatoId == null || candidatoViewModel.CandidatoId == 0) { response = InsertNewCandidato(candidatoViewModel); } else { response = UpdateCandidato(candidatoViewModel); } } catch (DbEntityValidationException ex) { response.IsValid = false; response.ErrorMessage = ex.Message; } catch (DbUpdateException ex) { response.IsValid = false; response.ErrorMessage = ex.Message; } catch (Exception ex) { response.IsValid = false; response.ErrorMessage = ex.Message; } return(response); }
private SaveCandidatoResponse UpdateCandidato(CreateEditCandidatoViewModel createEditCandidatoViewModel) { var response = new SaveCandidatoResponse(); var candidato = _candidatoRepository.GetOne(x => x.CandidatoId == createEditCandidatoViewModel.CandidatoId); var candidatoIdiomaToRemove = GetCandidatoIdiomasToRemove(candidato, createEditCandidatoViewModel); var candidatoExperienciaToRemove = GetCandidatoExperienciasToRemove(candidato, createEditCandidatoViewModel); var candidatoContactoToRemove = GetCandidatoContactosToRemove(candidato, createEditCandidatoViewModel); candidato.UpdateCandidato(createEditCandidatoViewModel); var numCandidatosActualizados = _candidatoRepository.Update(candidato); foreach (var idioma in candidatoIdiomaToRemove) { _candidatoIdiomaRepository.Delete(x => x.CandidatoIdiomasId == idioma); } foreach (var experiencia in candidatoExperienciaToRemove) { _candidatoExperienciaRepository.Delete(x => x.CandidatoExperienciaId == experiencia); } foreach (var contacto in candidatoContactoToRemove) { _candidatoContactoRepository.Delete(x => x.CandidatoContactoId == contacto); } if (numCandidatosActualizados > 0) { response.IsValid = true; response.CandidatoId = (int)createEditCandidatoViewModel.CandidatoId; } else { response.IsValid = false; response.ErrorMessage = "Error to update Candidato"; } return(response); }
private SaveCandidatoResponse InsertNewCandidato(CreateEditCandidatoViewModel createEditCandidatoViewModel) { var response = new SaveCandidatoResponse(); var candidato = new Candidato(); candidato.UpdateCandidato(createEditCandidatoViewModel); var newCandidato = _candidatoRepository.Create(candidato); if (newCandidato != null) { response.IsValid = true; response.CandidatoId = newCandidato.CandidatoId; } else { response.IsValid = false; response.ErrorMessage = "Error to save Candidato"; } return(response); }