public async Task <IActionResult> BonAanmaken(int index, BonAanmakenViewModel model)
        {
            ViewData["AlleCategorien"] = _categorieRepository.GetAll().ToList();
            ViewData["Index"]          = index;
            var gebruiker = await HaalGebruikerOp();

            Bestelling bestelling = _bestellingRepository.GetBy(gebruiker.Bestellingen.Last().BestellingId);

            ViewData["Bestelling"] = bestelling;
            IList <BestelLijn> bestellijnen = HaalBestellijnenOp(bestelling).ToList();

            ViewData["Bestellijnen"] = bestellijnen;

            if (ModelState.IsValid)
            {
                BestelLijn bestelLijn = bestellijnen[(int)index];
                bestelLijn.VerzenderNaam  = model.UwNaam;
                bestelLijn.VerzenderEmail = model.UwEmail;
                bestelLijn.OntvangerNaam  = model.NaamOntvanger;
                if (model.Boodschap != null && model.Boodschap != "")
                {
                    bestelLijn.Boodschap = model.Boodschap;
                }
                if (model.EmailOntvanger != null && model.EmailOntvanger != "")
                {
                    bestelLijn.OntvangerEmail = model.EmailOntvanger;
                }
                _bestellijnRepository.SaveChanges();

                maakBonAan(bestelLijn);

                if ((index + 1) == bestellijnen.Count)
                {
                    return(RedirectToAction(nameof(CheckoutController.Betaling), "Checkout", new { Id = bestelling.BestellingId }));
                }
                return(RedirectToAction(nameof(CheckoutController.BonAanmaken), "Checkout", new { index = index + 1 }));
            }

            return(View(model));
        }
        public async Task <IActionResult> DetailBestelling(int id)
        {
            ViewData["AlleCategorien"] = _categorieRepository.GetAll().ToList();
            ViewData["bestellijnen"]   = null;

            var user = await _userManager.GetUserAsync(User);

            var gebruiker = _gebruikerRepository.GetBy(user.Email);

            if (_bestellingRepository.GetBy(id) != null)
            {
                var bestelling = _bestellingRepository.GetBy(id);
                var gebruiker2 = _gebruikerRepository.GetByBestellingId(id);

                if (gebruiker == gebruiker2)
                {
                    ICollection <BestelLijn> bestellijnen = new HashSet <BestelLijn>();

                    //maak vervallen bonnen vervallen (visueel)
                    foreach (BestelLijn bon in bestelling.BestelLijnen.Where(bl => bl.Geldigheid == Geldigheid.Geldig && DateTime.Today > bl.AanmaakDatum.AddYears(1)))
                    {
                        bon.Geldigheid = Geldigheid.Verlopen;
                    }
                    _bestellijnRepository.SaveChanges();

                    //toon bonnen in bestelling en maak bijhorende pdf's
                    foreach (BestelLijn bl in bestelling.BestelLijnen)
                    {
                        GeneratePDF(bl.BestelLijnId);
                        bestellijnen.Add(_bestellijnRepository.GetById(bl.BestelLijnId));
                    }
                    ViewData["bestellijnen"] = bestellijnen;
                    ViewData["bestelid"]     = bestelling.BestellingId;
                }
            }
            return(View());
        }