// GET: Product public ActionResult Index(ApplicationUser gebruiker, string currentFilter, int?page, string searchString = null, string doelgroep = null, string leergebied = null) { ViewBag.Gebruiker = gebruiker; IEnumerable <Product> producten = productRepository.FindAll().ToList(); if (gebruiker is Student) { producten = producten.Where(b => b.Uitleenbaar).ToList(); } Verlanglijst verlanglijst = gebruiker.Verlanglijst; IEnumerable <ProductViewModel> productlijst = null; if (verlanglijst != null) { productlijst = producten.Select(p => new ProductViewModel(p, verlanglijst.BevatProduct(p), doelgroep)).ToList(); } if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewBag.CurrentFilter = searchString; ViewBag.Doelgroepen = doelgroepRepository.FindAll().ToArray(); ViewBag.Leergebieden = leergebiedRepository.FindAll().ToArray(); if (doelgroep != null) { productlijst = productlijst.Where(p => p.Doelgroepen.Contains(doelgroepRepository.FindByName(doelgroep))); } if (leergebied != null) { productlijst = productlijst.Where(p => p.Leergebieden.Contains(leergebiedRepository.FindByName(leergebied))); } if (!String.IsNullOrEmpty(searchString)) { searchString = searchString.Trim().ToLower(); productlijst = productlijst.Where( n => n.Artikelnaam.ToLower().Contains(searchString) || n.Omschrijving.ToLower().Contains(searchString)); //|| n.BevatDoelgroep(searchString) || n.BevatLeergebied(searchString)); if (productlijst.Count() == 0) { return(View("GeenZoekResultaten")); } } int pageSize = 3; int pageNumber = (page ?? 1); if (Request.IsAjaxRequest()) { return(PartialView("Producten", productlijst.ToPagedList(pageNumber, pageSize))); } return(View(productlijst.ToPagedList(pageNumber, pageSize))); }
private SelectList GetDoelgroepenSelectedList(int doelgroepId = 0) { return(new SelectList(doelgroepRepository.FindAll().OrderBy(d => d.Naam), "DoelgroepId", "Naam", doelgroepId)); }