Exemple #1
0
        private OtherInfoRowModel CalculateOtherInfoFlags(OtherInfoRowModel model)
        {
            var responseExistenteRecruiting = _candidatoService.CheckCandidatoEnRecruiting(model.Nombre, model.Email, model.Telefono, model.NIF);

            if (responseExistenteRecruiting.IsValid)
            {
                if (!responseExistenteRecruiting.ExistenteEnRecruiting)
                {
                    model.Visualizable = true;
                }
                else
                {
                    model.ExistenteRecruiting = responseExistenteRecruiting.ExistenteEnRecruiting;
                    var responseEnProcesoRecruiting = _candidaturaService.CheckEnProceso((int)responseExistenteRecruiting.CandidatoId);
                    if (responseEnProcesoRecruiting.IsValid)
                    {
                        if (responseEnProcesoRecruiting.EnProceso)
                        {
                            model.EnProceso    = responseEnProcesoRecruiting.EnProceso;
                            model.Contratado   = responseEnProcesoRecruiting.Contratado;
                            model.Visualizable = false;
                        }
                        else
                        {
                            var responseDescarteSeisMeses = _candidaturaService.CheckDescarteMenosSeisMeses((int)responseExistenteRecruiting.CandidatoId);
                            if (responseDescarteSeisMeses.IsValid)
                            {
                                if (!responseDescarteSeisMeses.DescarteMenosSeisMeses)
                                {
                                    model.Visualizable = true;
                                }
                                else
                                {
                                    model.DescarteRenunciaMenosSeisMeses = responseDescarteSeisMeses.DescarteMenosSeisMeses;
                                    var responseNoMotivadoCambioEmpresaResponse = _candidaturaService.CheckNoMotivadoCambioEmpresa((int)responseExistenteRecruiting.CandidatoId);
                                    if (responseNoMotivadoCambioEmpresaResponse.IsValid)
                                    {
                                        if (responseNoMotivadoCambioEmpresaResponse.NoMotivadoCambioEmpresa)
                                        {
                                            model.NoMotivadoCambioEmpresa = responseNoMotivadoCambioEmpresaResponse.NoMotivadoCambioEmpresa;
                                            model.Visualizable            = true;
                                        }
                                        else
                                        {
                                            model.Visualizable = false;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(model);
        }
        // POST: OtherInfoApi
        public DatosCandidatoApiModel Post(DatosCandidatoConsultaApiModel model)
        {
            DatosCandidatoApiModel datosCandidato = new DatosCandidatoApiModel();

            try
            {
                if (ValidateUser(model))
                {
                    var candidato = _candidatoService.CheckCandidatoEnRecruiting(model.Nombre, model.Email, model.Telefono, model.NIF);
                    if (candidato.IsValid)
                    {
                        if (candidato.ExistenteEnRecruiting)
                        {
                            var datosBasicosCandidato = _candidatoService.GetCandidatoById((int)candidato.CandidatoId);
                            datosCandidato.ExistenteRecruiting = true;
                            datosCandidato.Nombre     = datosBasicosCandidato.CandidatoViewModel.Nombres;
                            datosCandidato.Apellidos  = datosBasicosCandidato.CandidatoViewModel.Apellidos;
                            datosCandidato.Titulacion = datosBasicosCandidato.CandidatoViewModel.Titulacion;

                            var candidaturas = _candidaturaService.GetCandidaturasByIdCandidato((int)candidato.CandidatoId);

                            if (candidaturas.CandidaturasViewModel != null && candidaturas.CandidaturasViewModel.Count() != 0)
                            {
                                datosCandidato.NumCandidaturas = candidaturas.CandidaturasViewModel.Count();
                                datosCandidato = MapearDatosCandidatura(datosCandidato, candidaturas.CandidaturasViewModel);
                            }
                            else
                            {
                                datosCandidato.NumCandidaturas = 0;
                            }
                        }
                        else
                        {
                            datosCandidato.ExistenteRecruiting = candidato.ExistenteEnRecruiting;
                        }
                    }

                    return(datosCandidato);
                }
            }
            catch (Exception exception)
            {
                return(datosCandidato);
            }

            return(datosCandidato);
        }
        private ContactarCandidatoResponse ContactarCandidato(ContactarCandidatoModel model)
        {
            var response = new ContactarCandidatoResponse();

            var candidatoGuardar = new CandidatoOtherInfoViewModel()
            {
                Nombre                   = model.Nombre,
                Apellidos                = model.Apellidos,
                NIF                      = model.NIF,
                Telefono                 = model.Telefono,
                Email                    = model.Email,
                TitulacionId             = model.TitulacionId,
                UsuarioCreacionOtherInfo = model.UsuarioCreacionOtherInfo
            };

            var responseCheckExistenteRecruiting = _candidatoService.CheckCandidatoEnRecruiting(model.Nombre + " " + model.Apellidos, model.Email, model.Telefono, model.NIF);

            if (responseCheckExistenteRecruiting.IsValid)
            {
                if (responseCheckExistenteRecruiting.ExistenteEnRecruiting)
                {
                    candidatoGuardar.CandidatoId = responseCheckExistenteRecruiting.CandidatoId;
                    var responseUpdateCandidato = _candidatoService.UpdateCandidatoOtherInfo(candidatoGuardar);
                    if (responseUpdateCandidato.IsValid)
                    {
                        var responseCrearCandidatura = CheckAndCreateCandidatura(model, responseUpdateCandidato.CandidatoId);
                        response.IsValid      = responseCrearCandidatura.IsValid;
                        response.ErrorMessage = responseCrearCandidatura.ErrorMessage;
                    }
                }
                else
                {
                    var responseCreateCandidato = _candidatoService.CreateCandidatoOtherInfo(candidatoGuardar);
                    if (responseCreateCandidato.IsValid)
                    {
                        var responseCrearCandidatura = CheckAndCreateCandidatura(model, responseCreateCandidato.CandidatoId);
                        response.IsValid      = responseCrearCandidatura.IsValid;
                        response.ErrorMessage = responseCrearCandidatura.ErrorMessage;
                    }
                }
            }

            return(response);
        }