Ejemplo n.º 1
0
        // GET: Serie
        public ActionResult Index(int?idg, string nombre = "", int paginado = 40)
        {
            if (paginado <= 0)
            {
                paginado = 40;
            }

            int totalPages = 0;
            int totalRows  = 0;
            int pageSize   = paginado;
            int page       = Request.QueryString["page"] == null ? 1 : int.Parse(Request.QueryString["page"]);


            SerieRepository  repository       = new SerieRepository(context);
            GeneroRepository generoRepository = new GeneroRepository(context);
            var genero = generoRepository.Query(g => g.Eliminado == false);

            Expression <Func <Serie, bool> > expr = m => m.estado == EEstatusMedia.VISIBLE && m.nombre.Contains(nombre);

            if (idg != null)
            {
                expr = expr.And(x => x.Generos.Any(y => y.Id == idg));
            }

            var lst = repository.QueryPage(expr, out totalPages, out totalRows, "Nombre", page - 1, pageSize);

            var models  = MapHelper.Map <IEnumerable <SerieViewModel> >(lst);
            var generos = MapHelper.Map <ICollection <GeneroViewModel> >(generoRepository.GetAll());

            var model = new PaginatorViewModel <SerieViewModel>
            {
                Page       = page,
                TotalPages = totalPages,
                TotalRows  = totalRows,
                PageSize   = pageSize,
                Results    = models
            };

            ViewBag.ListaGenero = GeneroList(genero);
            ViewBag.Nombre      = nombre;
            ViewBag.Idg         = idg + "";
            ViewBag.Paginado    = paginado + "";

            return(View(model));
        }