public ActionResult Reserveer(VerlanglijstViewModel viewModel, DateTime van, DateTime tot, ApplicationUser user, bool[] dagenLector = null) { try { Product[] producten = user.Verlanglijst.Producten.ToArray(); if (ModelState.IsValid) { Dictionary <Product, int> productAantalMap = new Dictionary <Product, int>(); for (int i = 0; i < viewModel.Aantallen.Length; i++) { productAantalMap.Add(producten[i], viewModel.Aantallen[i]); } if (user is Student) { Email[] emails = new Email[1]; emails[0] = emailRepository.FindByReservatieStatus(ReservatieStatus.Gereserveerd); user.VoegReservatieToe(productAantalMap, van, tot, emails); } if (user is Personeel) { Email[] emails = new Email[3]; Email email = emailRepository.FindByReservatieStatus(ReservatieStatus.Geblokkeerd); Email email2 = emailRepository.FindByReservatieStatus(ReservatieStatus.Geannuleerd); Email email3 = emailRepository.FindByReservatieStatus(ReservatieStatus.Gewijzigd); emails[0] = email; emails[1] = email2; emails[2] = email3; user.VoegReservatieToe(productAantalMap, van, tot, emails, dagenLector); } gebruikerRepository.SaveChanges(); TempData["Info"] = "Uw reservatie is succesvol toegevoegd."; return(RedirectToAction("Index", "Product")); } }catch (ArgumentNullException ex) { ModelState.AddModelError("key", ex.Message); }catch (ArgumentOutOfRangeException ex) { ModelState.AddModelError("key", ex.Message); } viewModel.Producten = user.Verlanglijst.Producten; return(View("Index", viewModel)); }