public IActionResult Index(MyFiltersPersonaje filtro) { IEnumerable <Personaje> lst = null; using (var db = new SqlConnection(connection_Sql)) { var sql = "SELECT * FROM Personaje p INNER JOIN Clase c ON c.Cls_Id = p.Cls_Id"; sql = AgregarFiltrado(sql, filtro); lst = db.Query <Personaje, Clase, Personaje>( sql, (personaje, clase) => { personaje.Clase = clase; return(personaje); }, splitOn: "Cls_Id").Distinct().ToList(); } var model = new PersonajeViewModel(); model.Personajes = lst; model.DropClases = DropClases(); return(View(model)); }
private string AgregarFiltrado(string sql, MyFiltersPersonaje filtro) { sql += " WHERE "; if (!String.IsNullOrWhiteSpace(filtro.Filtro_Nombre)) { sql += $"Persj_Nombre LIKE '%{filtro.Filtro_Nombre}%'"; } if (!String.IsNullOrWhiteSpace(filtro.Filtro_Clase)) { sql += $"AND Cls_Nombre LIKE '{filtro.Filtro_Clase}'"; } if (filtro.Filtro_Lvl != 0) { sql += $"AND Persj_Lvl = {filtro.Filtro_Lvl}"; } return(sql); }