示例#1
0
        public IActionResult Koop(int?aboClubId, int?vakId)
        {
            ClubVM getClubVM(int?id)
            {
                Club clubDetails = clubService.GetClubById(Convert.ToInt32(id));

                var clubVM = new ClubVM();

                clubVM = _mapper.Map <ClubVM>(clubDetails);


                clubVM.Vakken = new SelectList(vakService.GetAll(), "Id", "Omschrijving");

                return(clubVM);
            }

            if (vakId == null || vakId == 0 || aboClubId == 0 || aboClubId == null)
            {
                if (aboClubId == null || aboClubId == 0)
                {
                    return(NotFound());
                }
                else
                {
                    ModelState.AddModelError("error", "Er moet een vak gekozen worden.");
                    return(View("Details", getClubVM(aboClubId)));
                }
            }

            Club       club       = clubService.GetClubById(Convert.ToInt32(aboClubId));
            Stadion    stadion    = stadionService.GetStadionById(Convert.ToInt32(club.StadionId));
            Vak        vak        = vakService.GetVakById(Convert.ToInt32(vakId));
            StadionVak stadionVak = stadionVakService.GetStadionVakByStadIdAndVakId(Convert.ToInt32(stadion.Id), Convert.ToInt32(vak.Id));
            decimal?   kostprijs  = stadionVak.AbonnementPrijs;

            //abonementprijs is null mag niet moet nog aangepast worden in database
            kostprijs = 100;

            ShoppingCartVM shopping;
            int            atlItems = 0;

            if (HttpContext.Session.GetObject <ShoppingCartVM>("ShoppingCart") != null)
            {
                shopping = HttpContext.Session.GetObject <ShoppingCartVM>("ShoppingCart");
            }
            else
            {
                shopping = new ShoppingCartVM();
                shopping.ShoppingCart = new List <CartVM>();
            }

            Boolean shoppingcartVol()
            {
                foreach (CartVM cart in shopping.ShoppingCart)
                {
                    atlItems += cart.Aantal;
                }
                if (atlItems >= 10)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            Boolean shoppingcartHeeftEenAbo()
            {
                Boolean isAbo = false;

                foreach (CartVM cart in shopping.ShoppingCart)
                {
                    if (cart.WedstrijdId.Equals(null))
                    {
                        isAbo = true;
                    }
                }
                return(isAbo);
            }

            if (shoppingcartVol())
            {
                ModelState.AddModelError("error", "Winkelkar zit vol");


                return(View("Details", getClubVM(club.Id)));
            }
            else if (shoppingcartHeeftEenAbo())
            {
                ModelState.AddModelError("error", "Je mag geen twee abonementen in je winkelmandje hebben");


                return(View("Details", getClubVM(club.Id)));
            }
            else
            {
                CartVM item = new CartVM
                {
                    ThuisClubId    = club.Id,
                    ThuisClubNaam  = club.Naam,
                    StadiumNaam    = stadion.Naam,
                    UitCLubNaam    = null,
                    VakNaam        = vak.Omschrijving,
                    VakId          = vak.Id,
                    WedstrijdId    = null,
                    WedstrijdDatum = null,
                    Aantal         = 1,
                    Prijs          = (decimal)kostprijs
                };

                shopping.ShoppingCart.Add(item);
                HttpContext.Session.SetObject("ShoppingCart", shopping);
                return(RedirectToAction("Index", "ShoppingCart"));
            }
        }
        public IActionResult Koop(int?wedstrijdId, int?vakId, int atlTickets)
        {
            //geeft listVM terug voor alle wedstrijden
            IEnumerable <WedstrijdVM> getListWedstrijdVMs()
            {
                ViewBag.lstClubs = new SelectList(clubService.GetAll(), "Id", "Naam");


                var list = wedstrijdService.GetAll();

                var listVM = _mapper.Map <List <WedstrijdVM> >(list);

                foreach (WedstrijdVM wedstrijdVM in listVM)
                {
                    int    wedId    = wedstrijdVM.Id;
                    string stadNaam = stadionService.GetStadionById(wedstrijdService.GetWedstrijdById(Convert.ToInt32(wedId)).ThuisClub.StadionId).Naam;
                    wedstrijdVM.StadionNaam = stadNaam;
                    wedstrijdVM.Vakken      = new SelectList(vakService.GetAll(), "Id", "Omschrijving");
                }
                return(listVM);
            }

            if (wedstrijdId == null || vakId == null || atlTickets == 0)
            {
                if (vakId == null || atlTickets == 0)
                {
                    if (atlTickets == 0)
                    {
                        ModelState.AddModelError("error", "Aantal mag niet nul zijn.");
                    }
                    if (vakId == null)
                    {
                        ModelState.AddModelError("error", "Er moet een vak gekozen worden.");
                    }
                    return(View("Index", getListWedstrijdVMs()));
                }
                else
                {
                    return(NotFound());
                }
            }

            Wedstrijd      wedstrijd  = wedstrijdService.GetWedstrijdById(Convert.ToInt32(wedstrijdId));
            Club           thuisclub  = clubService.GetClubById(Convert.ToInt32(wedstrijd.ThuisClubId));
            Club           uitclub    = clubService.GetClubById(Convert.ToInt32(wedstrijd.UitClubId));
            Stadion        stadion    = stadionService.GetStadionById(Convert.ToInt32(thuisclub.StadionId));
            Vak            vak        = vakService.GetVakById(Convert.ToInt32(vakId));
            StadionVak     stadionVak = stadionVakService.GetStadionVakByStadIdAndVakId(Convert.ToInt32(stadion.Id), Convert.ToInt32(vak.Id));
            ShoppingCartVM shopping;
            int            atlItems = 0;

            if (HttpContext.Session.GetObject <ShoppingCartVM>("ShoppingCart") != null)
            {
                shopping = HttpContext.Session.GetObject <ShoppingCartVM>("ShoppingCart");
            }
            else
            {
                shopping = new ShoppingCartVM();
                shopping.ShoppingCart = new List <CartVM>();
            }

            Boolean shoppingcartVol()
            {
                foreach (CartVM cart in shopping.ShoppingCart)
                {
                    atlItems += cart.Aantal;
                }
                if (atlItems >= 10)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            Boolean zelfdeWedstrijdDatum()
            {
                foreach (CartVM cart in shopping.ShoppingCart)
                {
                    if (cart.WedstrijdDatum == wedstrijd.Datum)
                    {
                        return(false);
                    }
                }

                return(true);
            }

            if (!zelfdeWedstrijdDatum())
            {
                ModelState.AddModelError("error", "Op deze datum hebt u al een ticket besteld.");

                return(View("Index", getListWedstrijdVMs()));
            }

            if (shoppingcartVol())
            {
                ModelState.AddModelError("error", "Winkelkar zit vol");


                return(View("Index", getListWedstrijdVMs()));
            }
            else if ((atlItems + atlTickets) > 10)
            {
                ModelState.AddModelError("error", "Winkelkar raakt vol men kan slecht nog " + (10 - atlItems) + " wedstrijdtickets bestellen");
                return(View("Index", getListWedstrijdVMs()));
            }
            else
            {
                CartVM item = new CartVM
                {
                    WedstrijdId    = wedstrijd.Id,
                    ThuisClubId    = thuisclub.Id,
                    ThuisClubNaam  = thuisclub.Naam,
                    UitCLubNaam    = uitclub.Naam,
                    StadiumNaam    = stadion.Naam,
                    VakNaam        = vak.Omschrijving,
                    WedstrijdDatum = wedstrijd.Datum,
                    Prijs          = (decimal)stadionVak.Prijs,
                    Aantal         = atlTickets,
                    VakId          = vak.Id
                };

                shopping.ShoppingCart.Add(item);
                HttpContext.Session.SetObject("ShoppingCart", shopping);
                return(RedirectToAction("Index", "ShoppingCart"));
            }
        }