예제 #1
0
        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);
        }
예제 #2
0
        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);
        }