示例#1
0
        public ActionResult Afgerond(CheckoutModel model)
        {
            List <ShoppingCartItem> lijst = HaalCartSessieOp();

            //vul checkoutmodel met juiste events
            CartPresentationModel reservingen = presentation.FillPresentationModel(lijst);

            //vul model opnieuw met juiste reserveringen
            model.Reserveringen = reservingen;

            //maak er een afgeronde bestelling van
            AfgerondeBestelling Bestelling = rep.CheckoutToBestelling(model);

            //kijk of de gewenste capaciteit beschikbaar is
            if (rep.ChangeCapacity(Bestelling))
            {
                bool bestaat = rep.BestaandeKlant(Bestelling.Klant.emailadres);

                if (!bestaat)
                {   //maak nieuwe klant in db
                    rep.AddKlant(Bestelling.Klant);
                    // haal aangemaakte klantid en maak reservering
                    int klantid = rep.GetKlantId(Bestelling.Klant.emailadres);
                    rep.AddReservering(klantid);
                    // creeëer koppeling tussen reservering en klant in db
                    rep.KoppelKlantReservering(klantid, Bestelling);



                    //voeg de gegenereerde ophaalcode toe aan de bestelling voor weergave op de view
                    Bestelling.ophaalcode = rep.GetOphaalCode(rep.GetReserveringId(klantid));
                }

                else
                { //haal klantid op om nieuwe reservering te maken
                    int klantid = rep.GetKlantId(Bestelling.Klant.emailadres);
                    rep.AddReservering(klantid);
                    // creeëer koppeling tussen reservering en klant in db
                    rep.KoppelKlantReservering(klantid, Bestelling);
                    Bestelling.ophaalcode = rep.GetOphaalCode(rep.GetReserveringId(klantid));
                }
                Session["cart"] = null;
                return(View(Bestelling));
            }
            else
            { //capaciteit niet beschibkaar
                return(RedirectToAction("BestellingMislukt"));
            }
        }