Пример #1
0
        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));
        }