// GET: Reservatie
        public ActionResult Index(Gebruiker gebruiker)
        {
            IList <ReservatieViewModel> reservaties = new List <ReservatieViewModel>();
            List <ReservatieViewModel>  reservatiesGesorteerd;

            foreach (Reservatie reservatie in gebruiker.Reservaties)
            {
                ReservatieViewModel rvm = new ReservatieViewModel(reservatie);
                reservaties.Add(rvm);

                //FindConflicts(reservatie, rvm, gebruiker);

                // @Svonx: wordt later nog in een aparte methode gestoken, staat hier nu voor izi bugfixing
                ConstructReservatieViewModels(reservatie, rvm, gebruiker);
            }
            ;

            Config c = configWrapper.GetConfig();

            ViewBag.ophaalTijd = c.Ophaaltijd.ToString("HH:mm");
            ViewBag.indienTijd = c.Indientijd.ToString("HH:mm");

            reservatiesGesorteerd = reservaties.OrderBy(o => o.Ophaalmoment).ToList();

            return(View(reservatiesGesorteerd));
        }
        //test
        public void ConstructReservatieViewModels(Reservatie reservatie, ReservatieViewModel rvm, Gebruiker gebruiker)
        {
            List <ReservatieLijn> reservatielijnen = reservatie.ReservatieLijnen.
                                                     OrderBy(rl => rl.Materiaal.Name).ToList();

            for (int i = 0; i < reservatielijnen.Count; i++)
            {
                int aantalSlechtsBeschikbaar = reservatielijnen[i].FindConflicts(gebruiker.CanSeeAllMaterials());
                if (aantalSlechtsBeschikbaar != 0)
                {
                    rvm.Conflict = true;
                }
                rvm.ReservatieLijnen[i].AantalSlechtsBeschikbaar = aantalSlechtsBeschikbaar;
            }
        }
        public ActionResult Afrekenen()
        {
            var     klant        = db.GetKlantById(Convert.ToInt16(Session["AangemeldeKlant"]));
            var     mandje       = VulMandje();
            decimal totaalbedrag = 0;

            foreach (var f in mandje)
            {
                totaalbedrag += f.Prijs;
                db.Verhuring(f.BandNr, klant.KlantNr);
            }
            var vm = new ReservatieViewModel(mandje, klant, totaalbedrag);

            return(View(vm));
        }
Exemple #4
0
        public ActionResult Detail(Gebruiker gebruiker, int id)
        {
            Reservatie r = reservatieRepository.FindBy(id);

            if (r == null)
            {
                return(RedirectToAction("Index"));
            }

            ReservatieViewModel rv = new ReservatieViewModel(r);

            ConstructReservatieViewModels(r, rv, gebruiker);

            return(View(rv));
        }
Exemple #5
0
 public ReservatieControllerTest()
 {
     _context = new DummyDbContext();
     _vergaderruimteRepository = new Mock <IVergaderruimteRepository>();
     _kortingRepository        = new Mock <IKortingRepository>();
     _cateringRepository       = new Mock <ICateringRepository>();
     _controller = new ReservatieController(_vergaderruimteRepository.Object, _cateringRepository.Object, _kortingRepository.Object)
     {
         TempData = new Mock <ITempDataDictionary>().Object
     };
     model = new ReservatieViewModel(_context.Vergaderruimte)
     {
         AantalPersonen    = 10,
         BeginUur          = 10,
         Dag               = _context.Dag.AddDays(14),
         CateringId        = 3,
         StandaardCatering = true,
         Duur              = 2
     };
 }
        public ActionResult Detail(Gebruiker gebruiker, int id)
        {
            Reservatie r = reservatieRepository.FindBy(id);

            if (r == null)
            {
                return(RedirectToAction("Index"));
            }

            ReservatieViewModel rv = new ReservatieViewModel(r);

            ConstructReservatieViewModels(r, rv, gebruiker);

            Config c = configWrapper.GetConfig();

            ViewBag.ophaalTijd = c.Ophaaltijd.ToString("HH:mm");
            ViewBag.indienTijd = c.Indientijd.ToString("HH:mm");

            return(View(rv));
        }
        public IActionResult Post([FromBody] ReservatieViewModel nieuweReservatie)
        {
            if (User.FindFirst("gebruikersId")?.Value != null && User.FindFirst("rol")?.Value == "klant")
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        Klant klant = _klantRepository.GetById(int.Parse(User.FindFirst("gebruikersId")?.Value));
                        Lunch lunch = _lunchRespository.GetById(nieuweReservatie.LunchId);

                        if (klant != null && lunch != null)
                        {
                            if (nieuweReservatie.Datum >= lunch.BeginDatum && nieuweReservatie.Datum <= lunch.EindDatum)
                            {
                                Reservatie reservatie = new Reservatie
                                {
                                    Lunch     = lunch,
                                    Aantal    = nieuweReservatie.Aantal,
                                    Datum     = nieuweReservatie.Datum,
                                    Opmerking = nieuweReservatie.Opmerking,
                                    Status    = Status.InAfwachting
                                };

                                klant.Reservaties.Add(reservatie);
                                _reservatieRepository.SaveChanges();

                                //mail service
                                var message = new MailMessage();
                                message.From = new MailAddress(klant.Email);
                                message.To.Add(lunch.Handelaar.Email);
                                message.ReplyToList.Add(klant.Email);
                                message.Subject = "Er werd een reservatie geplaatst.";
                                message.Body    = string.Format("Beste {3} \n\nEr werd een nieuwe reservatie geplaatst voor {0} op {1} om {2}.\n\nMet volgende opmerking: \n\n{4}\n\nGegevens van de klant: \nNaam: {5} {6} \nTelefoonnummer: {8}\nEmail: {7}\n\nU kan de reservatie goedkeuren op de website van Lunchers.\n\nMet vriedelijke groeten,\nHet Lunchers team ",
                                                                lunch.Naam,
                                                                reservatie.Datum.ToString("d", CultureInfo.CreateSpecificCulture("pt-BR")),
                                                                reservatie.Datum.ToString("t", CultureInfo.CreateSpecificCulture("es-ES")),
                                                                lunch.Handelaar.HandelsNaam,
                                                                reservatie.Opmerking,
                                                                klant.Voornaam,
                                                                klant.Achternaam,
                                                                klant.Email,
                                                                klant.Telefoonnummer);

                                //smpt server
                                var SmtpServer = new SmtpClient("smtp.gmail.com");
                                SmtpServer.Port        = 587;
                                SmtpServer.Credentials = new System.Net.NetworkCredential("*****@*****.**", "reallyStrongPwd123");
                                SmtpServer.EnableSsl   = true;

                                //message sent
                                SmtpServer.Send(message);

                                return(Ok(new { bericht = "De reservatie werd succesvol aangemaakt." }));
                            }
                            return(BadRequest(new { error = "De gekozen lunch is niet beschikbaar op de opgegeven datum." }));
                        }
                        return(BadRequest(new { error = "De opgegeven lunch of klant kon niet worden teruggevonden." }));
                    }
                    catch
                    {
                        return(BadRequest(new { error = "Er is iets fout gegaan tijdens het aanmaken van de reservatie." }));
                    }
                }
                return(BadRequest(new { error = ModelState }));
            }
            return(Unauthorized(new { error = "U bent niet aangemeld als klant." }));
        }
Exemple #8
0
        public void SetupContext()
        {
            ctx = new DummyDataContext();

            rpm             = new ReservatiePartModel();
            rpm.Amount      = 5;
            rpm.MateriaalId = 342;

            dg1 = new Groep
            {
                IsLeerGebied = false,
                Name         = "Kleuteronderwijs"
            };

            dgList = (new Groep[] { dg1 }).ToList();

            lg2 = new Groep
            {
                IsLeerGebied = true,
                Name         = "Aardrijkskunde"
            };

            lgListAardrijkskunde = (new Groep[] { lg2 }).ToList();


            m1 = new Materiaal
            {
                Name         = "Wereldbol",
                Amount       = 10,
                Doelgroepen  = dgList,
                Leergebieden = lgListAardrijkskunde,
                IsLendable   = true,
            };

            mockMateriaalRepository = new Mock <IMateriaalRepository>();
            mockConfigWrapper       = new Mock <IConfigWrapper>();

            //mockMateriaalRepository.Setup(m => m.FindAll()).Returns(ctx.MateriaalList);
            mockConfigWrapper.Setup(c => c.GetConfig()).Returns(new Config()
            {
                Indiendag     = "vrijdag",
                Ophaaldag     = "maandag",
                Indientijd    = new DateTime(1, 1, 1, 17, 30, 0),
                Ophaaltijd    = new DateTime(1, 1, 1, 10, 30, 0),
                LendingPeriod = 1
            });


            mockReservatieRepository = new Mock <IReservatieRepository>();
            mockMateriaalRepository  = new Mock <IMateriaalRepository>();

            mockMateriaalRepository.Setup(m => m.FindBy(342)).Returns(m1);
            mockReservatieRepository.Setup(m => m.FindBy(342)).Returns(ctx.reservatie);

            reservatieController = new ReservatieController(mockReservatieRepository.Object,
                                                            mockMateriaalRepository.Object, mockConfigWrapper.Object);

            /* Construct ReservatieViewModels */

            DateTime _11April2016 = new DateTime(2016, 4, 11);
            DateTime _15April2016 = new DateTime(2016, 4, 15);

            student = new Student("Offline", "Student", "*****@*****.**");
            lector  = new Lector("Offline", "Lector", "*****@*****.**");

            m2 = new Materiaal
            {
                Name               = "Rekenmachine",
                Description        = "Reken er op los met deze grafische rekenmachine.",
                ArticleCode        = "abc456",
                Price              = 19.99,
                Amount             = 4,
                AmountNotAvailable = 0,
                IsLendable         = true,
                Location           = "GSCHB 4.021"
            };

            r1 = new Reservatie(student, _11April2016, _15April2016);
            r1.ReservatieLijnen = new List <ReservatieLijn>();
            rl1 = new ReservatieLijn(2, _11April2016, _15April2016, m2, r1);
            r1.ReservatieLijnen.Add(rl1);

            r2 = new Reservatie(lector, _11April2016, _15April2016)
            {
                Reservatiemoment = _11April2016
            };
            r2.ReservatieLijnen = new List <ReservatieLijn>();
            rl2 = (new ReservatieLijn(3, _11April2016, _15April2016, m2, r2));
            r2.ReservatieLijnen.Add(rl2);

            r3 = new Reservatie(student, _11April2016, _15April2016);
            r3.ReservatieLijnen = new List <ReservatieLijn>();
            rl3 = new ReservatieLijn(2, _11April2016, _15April2016, m1, r3);
            r3.ReservatieLijnen.Add(rl3);


            student.Reservaties.Add(r1);
            lector.Reservaties.Add(r2);
            student.Reservaties.Add(r3);

            m1.ReservatieLijnen.Add(rl3);
            m2.ReservatieLijnen.Add(rl1);
            m2.ReservatieLijnen.Add(rl2);

            rvm = new ReservatieViewModel(r1);

            mockReservatieRepository.Setup(r => r.FindBy(456)).Returns(r1);
        }