public JsonResult Add(Gebruiker gebruiker, int id)
        {
            Materiaal mat = materiaalRepository.FindBy(id);

            try
            {
                gebruiker.AddToWishList(mat);
                materiaalRepository.SaveChanges();

                return(Json(new { status = "success", message = "Het materiaal " + mat.Name + " is toegevoegd aan je verlanglijstje." }));
            }
            catch (ArgumentException e)
            {
                return(Json(new { status = "error", message = e.Message }));
            }
        }
        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"));
        }
Example #3
0
        public ActionResult Detail(Gebruiker gebruiker, int id)
        {
            Materiaal m = materiaalRepository.FindBy(id);

            if (m == null)
            {
                return(HttpNotFound());
            }

            List <ReservatieLijn> reservatieLijnen = m.ReservatieLijnen
                                                     .Where(r => (r.IndienMoment >= DateTime.Today))
                                                     .ToList();

            long convertId = Convert.ToInt64(id);

            int[] chartList = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

            Dictionary <string, List <ReservatieLijnViewModel> > reservaties = new Dictionary <string, List <ReservatieLijnViewModel> >();


            foreach (ReservatieLijn rl in reservatieLijnen)
            {
                for (int i = 0; i < 12; i++)
                {
                    int days = i * 7 * config.LendingPeriod;

                    DateTime dateTime = DateTime.Today.AddDays(days);

                    // Calculate last monday
                    int delta = DayOfWeek.Monday - DateTime.Now.DayOfWeek;

                    if (delta > 0)
                    {
                        delta -= 7;
                    }

                    DateTime startOfWeek = DateTime.Now.AddDays(delta + i * 7 * config.LendingPeriod);

                    if (
                        (rl.OphaalMoment <= startOfWeek && rl.IndienMoment >= startOfWeek) ||
                        (rl.OphaalMoment <= startOfWeek && rl.OphaalMoment > startOfWeek.AddDays(7 * config.LendingPeriod))
                        )
                    {
                        chartList[i] = chartList[i] + rl.Amount;
                    }
                }

                if (reservaties.ContainsKey(rl.OphaalMoment.ToString()))
                {
                    reservaties[rl.OphaalMoment.ToString()].Add(new ReservatieLijnViewModel(rl));
                }
                else
                {
                    reservaties.Add(rl.OphaalMoment.ToString(), new List <ReservatieLijnViewModel>()
                    {
                        new ReservatieLijnViewModel(rl)
                    });
                }
            }

            ViewBag.chartList     = chartList;
            ViewBag.lendingPeriod = config.LendingPeriod;
            ViewBag.reservaties   = reservaties;
            ViewBag.InWishlist    = gebruiker.WishList.Contains(m);

            return(View(new MateriaalViewModel(m)));
        }