private bool ValidateUser(ContactarCandidatoModel model)
        {
            var appSettings = ConfigurationManager.AppSettings;

            if (model.UserName == appSettings.Get("userNameOtherInfo") && model.Password == appSettings.Get("passwordOtherInfo"))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        // POST: OtherInfoApi
        public ContactarCandidatoResponse Post(ContactarCandidatoModel model)
        {
            var response = new ContactarCandidatoResponse();

            try
            {
                if (ValidateUser(model))
                {
                    response = ContactarCandidato(model);
                }
                return(response);
            }
            catch (Exception exception)
            {
                return(response);
            }
        }
        private CrearCandidaturaOtherInfoResponse CheckAndCreateCandidatura(ContactarCandidatoModel model, int candidatoId)
        {
            var response          = new CrearCandidaturaOtherInfoResponse();
            var responseEnProceso = _candidaturaService.CheckEnProceso(candidatoId);

            DatosCandidaturaOtherInfoViewModel datosCandidaturaOtherInfo = new DatosCandidaturaOtherInfoViewModel()
            {
                CandidatoId              = candidatoId,
                CategoriaId              = model.CategoriaId,
                TecnologiaId             = model.TecnologiaId,
                ModuloId                 = model.ModuloId,
                OrigenCvId               = (int)OrigenCvEnum.BusquedaActiva,
                FuenteReclutamientoId    = (int)FuenteReclutamientoEnum.Infojobs,
                UsuarioCreacionOtherInfo = model.UsuarioCreacionOtherInfo
            };

            if (responseEnProceso.IsValid)
            {
                if (responseEnProceso.EnProceso)
                {
                    response.IsValid      = false;
                    response.ErrorMessage = "Ya existe una candidatura en proceso";
                }
                else
                {
                    var responseCreateCandidatura = _candidaturaService.CrearCandidaturaOtherInfo(datosCandidaturaOtherInfo);
                    if (responseCreateCandidatura.IsValid)
                    {
                        response.IsValid = true;
                    }
                    else
                    {
                        response.IsValid      = false;
                        response.ErrorMessage = responseCreateCandidatura.ErrorMessage;
                    }
                }
            }
            else
            {
                response.IsValid      = false;
                response.ErrorMessage = responseEnProceso.ErrorMessage;
            }

            return(response);
        }
        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);
        }