private void button2_Click(object sender, EventArgs e) { if (!String.IsNullOrWhiteSpace(DepartamentoComboBox.Text) || !String.IsNullOrWhiteSpace(NombreTxtBox.Text) || !String.IsNullOrWhiteSpace(IdiomaComboBox.Text)) { showLoading(); var puesto = (Puesto)PuestoComboBox.SelectedItem; var departamento = (Departamento)DepartamentoComboBox.SelectedItem; var capacitacion = (Capacitacion)CapacitacionesListBox2.SelectedItem; var competencia = (Competencia)CompetenciasListBox2.SelectedItem; var idioma = (Idioma)IdiomaComboBox.SelectedItem; var searchModel = new SearchCandidatosModel { Nombres = NombreTxtBox.Text, Puesto = puesto, Departamento = departamento, Capacitacion = capacitacion, Competencia = competencia, Idioma = idioma }; var result = _candidatoService.AdvanceSearch(searchModel); update_dataGridView(result); hideLoading(); } else { MessageBox.Show("Debe escribir el nombre o almenos seleciconar un departamento", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
public List <Candidato> AdvanceSearch(SearchCandidatosModel model) { var candidatos = _context.Candidatos.Where(x => !x.Deleted).ToList(); var result = candidatos.Where(x => (model.Nombres == string.Empty || (model.Nombres.ToLower().Contains(x.Nombres.ToLower()) || model.Nombres.ToLower().Contains(x.Apellidos.ToLower()))) && (model.Departamento == null || x.DepartamentoId == model.Departamento.Id) && (model.Puesto == null || x.PuestoId == model.Puesto.Id) && (model.Capacitacion == null || x.Capacitaciones.Any(y => y.Id == model.Capacitacion.Id)) && (model.Competencia == null || x.Competencias.Any(y => y.Id == model.Competencia.Id)) && (model.Idioma == null || x.Idiomas.Any(y => y.Id == model.Idioma.Id)) ).ToList(); return(result); }