public IEnumerable <CandidatoViewModel> GetAll() { List <CandidatoViewModel> listaCandidatoViewModel = new List <CandidatoViewModel>(); foreach (var candidato in _candidatoRepository.GetAll()) { CandidatoViewModel candidatoViewModel = new CandidatoViewModel { Nome = candidato.Nome, Apelido = candidato.Apelido, CPF = candidato.CPF }; listaCandidatoViewModel.Add(candidatoViewModel); } return(listaCandidatoViewModel); }
private IQueryable <Candidato> FilterString(IDictionary <string, string> customFilter) { var query = _candidatoRepository.GetAll(); // Solo devolvemos candidatos activos. query = query.Where(x => x.IsActivo); if (customFilter.ContainsKey("Descartado")) { query = query.Where(x => !x.Candidaturas.Any(y => y.DescartarFuturasCandidaturas)); } if (customFilter.ContainsKey("Nombre") && customFilter["Nombre"] != string.Empty) { var nombre = customFilter["Nombre"]; query = query.Where(x => x.Nombre.Contains(nombre)); } if (customFilter.ContainsKey("Apellidos") && customFilter["Apellidos"] != string.Empty) { var apellidos = customFilter["Apellidos"]; query = query.Where(x => x.Apellidos.Contains(apellidos)); } if (customFilter.ContainsKey("TipoTitulacion") && customFilter["TipoTitulacion"] != string.Empty) { var titulacionId = Convert.ToInt32(customFilter["TipoTitulacion"]); query = query.Where(x => x.TitulacionId == titulacionId); } if (customFilter.ContainsKey("TipoIdentificacion") && customFilter["TipoIdentificacion"] != string.Empty) { var tipoIdentificacionId = Convert.ToInt32(customFilter["TipoIdentificacion"]); query = query.Where(x => x.TipoIdentificacionId == tipoIdentificacionId); } if (customFilter.ContainsKey("NumeroIdentificacion") && customFilter["NumeroIdentificacion"] != string.Empty) { var numIdentificacion = customFilter["NumeroIdentificacion"]; query = query.Where(x => string.Compare(x.NumeroIdentificacion, numIdentificacion, true) == 0); } //se filtra por el centro del usuario logado salvo cuando hay un Centro de busqueda que buscaria los del centro en cuestion (CentroSearch) if (customFilter.ContainsKey("CentroUsuarioId") && (customFilter["CentroUsuarioId"] != string.Empty || customFilter.ContainsKey("CentroSearch"))) { if (customFilter.ContainsKey("CentroSearch")) { if (customFilter["CentroSearch"] != string.Empty) { var CentroUsuarioId = Convert.ToInt32(customFilter["CentroSearch"]); query = query.Where(x => x.Usuario.CentroId == CentroUsuarioId); } else { if (customFilter["CentroUsuarioId"] != string.Empty) { var CentroUsuarioId = Convert.ToInt32(customFilter["CentroUsuarioId"]); query = query.Where(x => x.Usuario.CentroId == CentroUsuarioId); } } } else { var CentroUsuarioId = Convert.ToInt32(customFilter["CentroUsuarioId"]); query = query.Where(x => x.Usuario.CentroId == CentroUsuarioId); } } if (customFilter.ContainsKey("CentroSearch") && !customFilter.ContainsKey("CentroUsuarioId") && customFilter["CentroSearch"] != string.Empty) { var CentroUsuarioId = Convert.ToInt32(customFilter["CentroSearch"]); query = query.Where(x => x.Usuario.Centro.CentroId == CentroUsuarioId); } if (customFilter.ContainsKey("TipoTecnologia") && customFilter["TipoTecnologia"] != string.Empty) { var tipoTecnologiaId = Convert.ToInt32(customFilter["TipoTecnologia"]); query = query.Where(x => x.CandidatoExperiencias.Any(y => y.TipoTecnologiaId == tipoTecnologiaId)); } if (customFilter.ContainsKey("Email") && customFilter["Email"] != string.Empty) { var email = customFilter["Email"].RemoveDiacritics(); query = query.Where(x => x.CandidatoContactos.Any(y => y.IsActivo && y.Contacto.Contains(email) && y.TipoMedioContactoId == (int)TipoContactoEnum.Email)); } if (customFilter.ContainsKey("Telefono") && customFilter["Telefono"] != string.Empty) { var telefono = customFilter["Telefono"].RemoveDiacritics().Replace(" ", ""); query = query.Where(x => x.CandidatoContactos.Any(y => y.IsActivo && y.Contacto.Replace(" ", "").Contains(telefono) && y.TipoMedioContactoId == (int)TipoContactoEnum.Telefono)); } if (customFilter.ContainsKey("CentroEducativoId") && customFilter["CentroEducativoId"] != string.Empty) { var centroEducativoId = Convert.ToInt32(customFilter["CentroEducativoId"]); query = query.Where(x => x.CandidatoCentroEducativoId == centroEducativoId); } if (customFilter.ContainsKey("AnioRegresado") && !string.IsNullOrEmpty(customFilter["AnioRegresado"])) { var anioRegresado = customFilter["AnioRegresado"]; query = query.Where(x => x.AnioRegresado.Contains(anioRegresado)); } if (customFilter.ContainsKey("NivelIdioma") && customFilter["NivelIdioma"] != string.Empty) { var nivelIdiomaId = Convert.ToInt32(customFilter["NivelIdioma"]); query = query.Where(x => x.CandidatoIdiomas.Any(y => y.NivelIdiomaId >= nivelIdiomaId && y.IdiomaId == 15)); } return(query); }