public ActionResult Add(Gebruiker gebruiker, List <ReservatiePartModel> reservatiepartmodels, DateTime?ophaalDatum) { Config c = configWrapper.GetConfig(); int aantalDagen; var dayToNr = new Dictionary <string, int>(); dayToNr.Add("maandag", 1); dayToNr.Add("dinsdag", 2); dayToNr.Add("woensdag", 3); dayToNr.Add("donderdag", 4); dayToNr.Add("vrijdag", 5); dayToNr.Add("zaterdag", 6); dayToNr.Add("zondag", 7); aantalDagen = Reservatie.CalculateAmountDaysOphaalDatumFromIndienDatum(dayToNr[c.Indiendag], dayToNr[c.Ophaaldag], c.LendingPeriod); var materialenTeReserveren = new Dictionary <Materiaal, int>(); var x = 0; foreach (ReservatiePartModel rpm in reservatiepartmodels) { if (rpm.Amount > 0) { materialenTeReserveren.Add(materiaalRepository.FindBy(rpm. MateriaalId), rpm.Amount); x++; } } try { if (!ophaalDatum.HasValue) { throw new ArgumentException("De ophaaldatum moet een geldige waarde hebben (Formaat: dd/mm/yyyy)."); } if (x == 0) { throw new ArgumentException("Er moet minstens 1 materiaal zijn waarbij het aantal groter is dan 0."); } DateTime indienDatum = ophaalDatum.Value.AddDays(aantalDagen); gebruiker.AddReservation(materialenTeReserveren, ophaalDatum.Value, indienDatum, DateTime.UtcNow.ToLocalTime()); reservatieRepository.SaveChanges(); TempData["msg"] = "De reservatie is toegevoegd aan uw verlanglijst."; } catch (ArgumentException e) { TempData["err"] = e.Message; return(RedirectToAction("Index", "Verlanglijst")); } return(RedirectToAction("Index")); }
public void TestAddReservationTeReserverenMaterialenVerplicht() { student.AddReservation(null, _13April2016, _20April2016, _1April2016); }