// 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)));
        }
Exemple #2
0
 private SelectList GetDoelgroepenSelectedList(int doelgroepId = 0)
 {
     return(new SelectList(doelgroepRepository.FindAll().OrderBy(d => d.Naam),
                           "DoelgroepId", "Naam", doelgroepId));
 }