예제 #1
0
        public IActionResult Filter(List <int> merk, int sort, int id, List <int> stijl, List <int> neklijn, List <int> silhouette, List <int> kleur, int max, int min, int aantaltonen, int pagina)
        {
            // Categorieen
            ViewBag.categorieen = _context.Categorie.ToList <Categorie>();

            // Stijlen
            ViewBag.stijlen = _context.Stijl.ToList <Stijl>();

            // Neklijnen
            ViewBag.neklijnen = _context.Neklijn.ToList <Neklijn>();

            // Silhouette
            ViewBag.silhouette = _context.Silhouette.ToList <Silhouette>();

            // Kleuren
            ViewBag.kleuren = _context.Kleur.ToList <Kleur>();

            // Merken
            ViewBag.merken = _context.Merk.ToList <Merk>();

            // Max prijs
            ViewBag.maxprijs = _context.Jurk.Max(j => j.Prijs);


            List <Artikel> artikelen;

            // Als id(categorie) is gezet dan halen we alleen artikelen van die categorie
            if (id != 0)
            {
                artikelen = _context.Artikel.Include(j => j.Jurken).Where(j => j.CategorieID == id).ToList();
            }
            else
            {
                artikelen = _context.Artikel.Include(j => j.Jurken).ToList <Artikel>();
            }

            // Artikel moet wel een jurk hebben.
            artikelen = artikelen.Where(j => j.Jurken.Count > 0).ToList();


            // totaal aantal artikelen voor aantal paginas.
            int aantaljurken = artikelen.Count();

            ViewBag.aantaljurken = aantaljurken;

            // aantal skippen als er een pagina is
            if (pagina > 1)
            {
                artikelen = artikelen.Skip((pagina - 1) * aantaltonen).ToList();
            }

            // Aantal tonen
            artikelen = artikelen.Take(aantaltonen).ToList();


            // aantal paginas berekenen(naar boven afronden)
            double aantalpaginas = Math.Ceiling((double)aantaljurken / aantaltonen);

            ViewData["aantalpaginas"] = aantalpaginas;
            ViewBag.pagina            = pagina;
            ViewBag.aantalPaginas     = aantalpaginas;


            // Voeg aan viewbag toe
            ViewBag.artikelen = artikelen;


            List <Jurk> jurken = new List <Jurk>();

            // Haal 1 jurk van elk artikel om te laten zien
            foreach (Artikel artikel in ViewBag.artikelen)
            {
                var query = _context.Jurk.Where(j => j.artikel.ArtikelID == artikel.ArtikelID);

                // voeg meerdere condities toe als er gefilterd wordt.

                // Merk filter
                if (merk.Count() > 0)
                {
                    query = query.Where(j => merk.Contains(j.merk.MerkID));
                }

                // Stijl jurk filter
                if (stijl.Count() > 0)
                {
                    query = query.Where(j => stijl.Contains(j.stijl.StijlID));
                }

                //Neklijn filter
                if (neklijn.Count() > 0)
                {
                    query = query.Where(j => neklijn.Contains(j.neklijn.NeklijnID));
                }

                //silhouette filter
                if (silhouette.Count() > 0)
                {
                    query = query.Where(j => silhouette.Contains(j.silhouette.SilhouetteID));
                }

                // kleur filter
                if (kleur.Count() > 0)
                {
                    query = query.Where(j => kleur.Contains(j.kleur.KleurID));
                }

                // kleur filter
                if (min > 0)
                {
                    query = query.Where(j => j.Prijs >= min);
                }

                // kleur filter
                if (max > 0)
                {
                    query = query.Where(j => j.Prijs <= max);
                }


                Jurk jurk = query.FirstOrDefault <Jurk>();

                if (jurk != null)
                {
                    jurken.Add(jurk);
                }
            }

            // Sorteren
            if (sort != 0)
            {
                switch (sort)
                {
                // prijs hoog naar laag
                case 1:
                    jurken = jurken.OrderByDescending(j => j.Prijs).ToList();
                    break;

                // prijs laag naar hoog
                case 2:
                    jurken = jurken.OrderBy(j => j.Prijs).ToList();
                    break;
                }
            }

            ViewBag.jurken = jurken;
            ViewBag.pagina = pagina;

            DressfinderIndex dfi = new DressfinderIndex();

            ViewBag.aantaltonen = aantaltonen;
            dfi.aantaltonen     = new List <int>()
            {
                6, 12, 24, 36
            };;

            return(View(dfi));
        }
예제 #2
0
        public IActionResult Index(int id, int sort)
        {
            ViewBag.extrajs = "~/js/dressfinder.js";

            // Categorieen
            ViewBag.categorieen = _context.Categorie.ToList <Categorie>();

            // Stijlen
            ViewBag.stijlen = _context.Stijl.ToList <Stijl>();

            // Neklijnen
            ViewBag.neklijnen = _context.Neklijn.ToList <Neklijn>();

            // Silhouette
            ViewBag.silhouette = _context.Silhouette.ToList <Silhouette>();

            // Kleuren
            ViewBag.kleuren = _context.Kleur.ToList <Kleur>();

            // Merken
            ViewBag.merken = _context.Merk.ToList <Merk>();

            // Max prijs
            ViewBag.maxprijs = _context.Jurk.Max(j => j.Prijs);

            List <Artikel> artikelen;

            // Als id(categorie) is gezet dan halen we alleen artikelen van die categorie
            if (id != 0)
            {
                ViewBag.categorie = id;
                artikelen         = _context.Artikel.Include(j => j.Jurken).Where(j => j.CategorieID == id).ToList <Artikel>();
            }
            else
            {
                artikelen = _context.Artikel.Include(j => j.Jurken).ToList <Artikel>();
            }


            // Artikel moet wel een jurk hebben.
            artikelen = artikelen.Where(j => j.Jurken.Count > 0).ToList();

            // totaal aantal artikelen voor aantal paginas.
            int aantaljurken = artikelen.Count();


            int aantaltonen = 24;

            // Aantal tonen
            artikelen = artikelen.Take(aantaltonen).ToList();


            // aantal paginas berekenen(naar boven afronden)
            double aantalpaginas = Math.Ceiling((double)aantaljurken / aantaltonen);

            ViewBag.pagina        = 1;
            ViewBag.aantalPaginas = aantalpaginas;


            List <Jurk> jurken = new List <Jurk>();

            // Haal 1 jurk van elk artikel om te laten zien
            foreach (Artikel artikel in artikelen)
            {
                Jurk jurk = _context.Jurk.Where(j => j.artikel.ArtikelID == artikel.ArtikelID).FirstOrDefault <Jurk>();

                if (jurk != null)
                {
                    jurken.Add(jurk);
                }
            }


            // Sorteren
            if (sort != 0)
            {
                switch (sort)
                {
                // prijs hoog naar laag
                case 1:
                    jurken = jurken.OrderByDescending(j => j.Prijs).ToList();
                    break;

                // prijs laag naar hoog
                case 2:
                    jurken = jurken.OrderBy(j => j.Prijs).ToList();
                    break;
                }
            }


            ViewBag.jurken = jurken;

            ViewBag.artikelen = artikelen;

            DressfinderIndex dfi = new DressfinderIndex();

            ViewBag.aantaltonen = 24;
            dfi.aantaltonen     = new List <int>()
            {
                6, 12, 24, 36
            };;

            return(View(dfi));
        }