예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }