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")); } }