public async Task <IActionResult> ObtenerLibros([FromQuery] FiltroLibro entidad) { var respuesta = await _repositorio.GetAll(s => s.IdAutorNavigation, c => c.IdCategoriaNavigation); if (!string.IsNullOrWhiteSpace(entidad.Nombre)) { respuesta = respuesta.Where(s => s.Nombre.StartsWith(entidad.Nombre)).ToList(); } if (entidad.IdAutor != default) { respuesta = respuesta.Where(s => s.IdAutor == entidad.IdAutor).ToList(); } if (entidad.IdCategoria != default) { respuesta = respuesta.Where(s => s.IdCategoria == entidad.IdCategoria).ToList(); } var listado = respuesta. Select(s => new { s.Id, s.Nombre, s.IdAutor, s.IdCategoria, NombreAutor = s.IdAutorNavigation.Nombre, ApellidoAutor = s.IdAutorNavigation.Apellidos, Categoria = s.IdCategoriaNavigation.Nombre, s.Isnb }).ToList(); return(Ok(listado)); }
public ActionResult FiltrarLibro(FiltroLibro filtros) { EstrategiaFiltroLibro strategy = new EstrategiaFiltroLibro() { libros = db.Libro, Filtros = filtros }; List <Libro> librosFiltrados = strategy.Filtrar(); return(PartialView("_ListarLibros", librosFiltrados)); }