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"));
        }
Exemple #2
0
        public void CalculateAmountMondayToFridaySameWeekReturns4()
        {
            int verschil = Reservatie.CalculateAmountDaysOphaalDatumFromIndienDatum(vrijdag, eenweek, maandag);

            Assert.AreEqual(4, verschil);
        }
Exemple #3
0
        public void CalculateAmountMondayToMondayNextWeekReturns7()
        {
            int verschil = Reservatie.CalculateAmountDaysOphaalDatumFromIndienDatum(maandag2, eenweek, maandag);

            Assert.AreEqual(7, verschil);
        }
Exemple #4
0
        public void CalculateAmountMondayToMondayTwoWeeksReturns14()
        {
            int verschil = Reservatie.CalculateAmountDaysOphaalDatumFromIndienDatum(maandag2, tweeweken, maandag);

            Assert.AreEqual(14, verschil);
        }
Exemple #5
0
        public void CalculateAmountMondayToFridayNotSameWeekReturns11()
        {
            int verschil = Reservatie.CalculateAmountDaysOphaalDatumFromIndienDatum(vrijdag, tweeweken, maandag);

            Assert.AreEqual(11, verschil);
        }