public async Task <IActionResult> IndexFilter([Bind("NomeSearch,Page,RequerentesPerPage")] RequerentesSearchViewModel search) { int skipNum = (search.Page - 1) * search.RequerentesPerPage; // Recolher os serviços por página do cookie int rPP = CookieAPI.GetAsInt32(Request, "RequerentesPerPage") ?? _rPP; // Caso o utilizador tenha alterado os serviços por página, alterar a variável global e guardar // o novo valor no cookie if (search.RequerentesPerPage != rPP) { rPP = search.RequerentesPerPage; CookieAPI.Set(Response, "RequerentesPerPage", rPP.ToString()); } // Query de todos os requerentes IQueryable <Requerente> requerentes = _context.Requerentes.AsQueryable().OrderBy(r => r.Nome); if (!String.IsNullOrEmpty(search.NomeSearch)) { requerentes = requerentes.Where(r => r.Nome.Contains(search.NomeSearch)).OrderBy(r => r.Nome); } requerentes = requerentes.Include(r => r.Servicos).Skip(skipNum); RequerentesViewModels response = new RequerentesViewModels { Requerentes = await requerentes.Take(rPP).ToListAsync(), FirstPage = (search.Page == 1), LastPage = (requerentes.Count() <= rPP), PageNum = search.Page }; return(PartialView("PartialViews/_IndexCards", response)); }
// GET: Requerentes public async Task <IActionResult> Index(int?page = 1) { // Fornecer feedback ao cliente caso este exista. // Este feedback é fornecido na view a partir de uma notificação 'Noty' if (TempData["Feedback"] != null) { ViewData["Feedback"] = TempData["Feedback"]; ViewData["Type"] = TempData["Type"] ?? "success"; } var requerentes = _context.Requerentes.Include(r => r.Servicos) .OrderBy(r => r.Nome); // Recolher as galerias por página do cookie int rPP = CookieAPI.GetAsInt32(Request, "RequerentesPerPage") ?? _rPP; ViewData["rPP"] = rPP; RequerentesViewModels response = new RequerentesViewModels { Requerentes = await requerentes.Take(rPP).ToListAsync(), FirstPage = true, LastPage = (requerentes.Count() <= rPP), PageNum = 1 }; return(View(response)); }