public async Task <ActionResult <List <Pelicula> > > Get([FromQuery] ParametrosBusquedaPeliculas parametrosBusqueda) { var peliculasQueryable = _context.Peliculas.AsQueryable(); if (!string.IsNullOrWhiteSpace(parametrosBusqueda.Titulo)) { peliculasQueryable = peliculasQueryable .Where(x => x.Titulo.ToLower().Contains(parametrosBusqueda.Titulo.ToLower())); } if (parametrosBusqueda.EnCartelera) { peliculasQueryable = peliculasQueryable.Where(x => x.EnCartelera); } if (parametrosBusqueda.Estrenos) { var hoy = DateTime.Today; peliculasQueryable = peliculasQueryable.Where(x => x.Lanzamiento >= hoy); } if (parametrosBusqueda.GeneroId != 0) { peliculasQueryable = peliculasQueryable .Where(x => x.GenerosPelicula.Select(y => y.GeneroId) .Contains(parametrosBusqueda.GeneroId)); } //TODO: Implementar votacion await HttpContext.InsertarParametrosPaginacionEnRespuesta(peliculasQueryable, parametrosBusqueda.CantidadRegistros); var peliculas = await peliculasQueryable.Paginar(parametrosBusqueda.Paginacion).ToListAsync(); return(peliculas); }
public async Task <PagedResponse <Pelicula> > Get(ParametrosBusquedaPeliculas parametrosBusqueda) { var peliculasQueryable = context.Peliculas.AsQueryable(); if (!string.IsNullOrWhiteSpace(parametrosBusqueda.Titulo)) { peliculasQueryable = peliculasQueryable .Where(x => x.Titulo.ToLower().Contains(parametrosBusqueda.Titulo.ToLower())); } if (parametrosBusqueda.EnCartelera) { peliculasQueryable = peliculasQueryable.Where(x => x.EnCartelera); } if (parametrosBusqueda.Estrenos) { var hoy = DateTime.Today; peliculasQueryable = peliculasQueryable.Where(x => x.Lanzamiento >= hoy); } if (parametrosBusqueda.GeneroID != 0) { peliculasQueryable = peliculasQueryable .Where(x => x.GenerosPelicula .Select(y => y.GeneroId).Contains(parametrosBusqueda.GeneroID)); } var respuesta = new PagedResponse <Pelicula> { TotalPages = await peliculasQueryable.GetTotalPages(parametrosBusqueda.CantidadRegistros), Records = await peliculasQueryable.AsNoTracking().Page(parametrosBusqueda.Paginacion).ToListAsync() }; return(respuesta); }
public async Task <RespuestaPaginada <Pelicula> > Get(ParametrosBusquedaPeliculas parametrosBusqueda) { var peliculasQueryable = context.Peliculas.AsQueryable(); if (!string.IsNullOrWhiteSpace(parametrosBusqueda.Titulo)) { peliculasQueryable = peliculasQueryable .Where(x => x.Titulo.ToLower().Contains(parametrosBusqueda.Titulo.ToLower())); } if (parametrosBusqueda.EnCartelera) { peliculasQueryable = peliculasQueryable.Where(x => x.EnCartelera); } if (parametrosBusqueda.Estrenos) { var hoy = DateTime.Today; peliculasQueryable = peliculasQueryable.Where(x => x.Lanzamiento >= hoy); } if (parametrosBusqueda.GeneroId != 0) { peliculasQueryable = peliculasQueryable .Where(x => x.GenerosPelicula.Select(y => y.GeneroId) .Contains(parametrosBusqueda.GeneroId)); } // TODO: Implementar votacion var respuesta = new RespuestaPaginada <Pelicula>(); respuesta.TotalPaginas = await peliculasQueryable.CalcularTotalPaginas(parametrosBusqueda.CantidadRegistros); respuesta.Registros = await peliculasQueryable.AsNoTracking().Paginar(parametrosBusqueda.Paginacion).ToListAsync(); return(respuesta); }