public ActionResult Details(int orderNr) { orderService = new OrderService(); Order order = orderService.Get(Convert.ToInt16(orderNr)); RittenService rittenService = new RittenService(); ViewBag.ReisMogelijkheden = rittenService.GetRittenVanTrajectId(Convert.ToInt16(order.TrajectId)); return(View(order)); }
public IActionResult Payment(List <CartVM> cart) { string userID = User.FindFirst(ClaimTypes.NameIdentifier).Value; HotelsService hotelsService = new HotelsService(); StatusService statusService = new StatusService(); AspNetUsersService klantService = new AspNetUsersService(); StedenService stedenService = new StedenService(); OrderService orderService = new OrderService(); KlasseService klasseService = new KlasseService(); TicketService ticketService = new TicketService(); try { var id = 0; Order geboekteOrder = new Order(); foreach (CartVM c in cart) { Order order = new Order(); order.Klant = klantService.Get(userID); order.KlantId = userID; order.AantalTickets = c.AantalTickets; order.Klasse = klasseService.GetKlasseVanId(c.Klasse); order.Prijs = (decimal)c.Prijs; order.Status = statusService.Get(1); order.StatusId = 1; order.Boekingsdatum = DateTime.UtcNow; order.TrajectId = c.TrajectId; order.Aankomstdatum = c.Aankomstdatum; order.Vertrekdatum = c.Vertrekdatum; orderService.Create(order); geboekteOrder = orderService.Get(order.OrderId); id = geboekteOrder.OrderId; RittenService rittenService = new RittenService(); IEnumerable <Ritten> reisMogelijkheden = rittenService.GetRittenVanTrajectId(c.TrajectId); ReisMogelijkhedenService reisMogelijkhedenService = new ReisMogelijkhedenService(); //aanmaken van tickets for (int i = 0; i < c.AantalTickets; i++) { foreach (var item in reisMogelijkheden) { Ticket ticket = new Ticket(); ticket.OrderId = id; ticket.Zetelnummer = ticketService.GetAantalPlaatsenGereserveerd(item.ReisMogelijkhedenId, c.Vertrekdatum, c.Klasse) + 1; ticket.VoornaamPassagier = c.Voornamen.ElementAt(i); ticket.AchternaamPassagier = c.Achternamen.ElementAt(i); ticket.ReismogelijkhedenId = item.ReisMogelijkhedenId; ticket.Reismogelijkheden = reisMogelijkhedenService.Get(item.ReisMogelijkhedenId); ticketService.Create(ticket); } } Delete(c.TrajectId); } return(RedirectToAction("Validation")); } catch (DataException ex) { //Log the error (uncomment dex variable name and add a line here to write a log. ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); } catch (Exception ex) { //Log the error (uncomment dex variable name and add a line here to write a log. ModelState.AddModelError("", "call system administrator."); } return(View("Index")); }
public IActionResult Home(ZoekListVM zoekListVM) { ModelState.Clear(); if (zoekListVM == null) { return(NotFound()); } if (ModelState.IsValid) { StedenService stedenService = new StedenService(); zoekListVM.Steden = new SelectList(stedenService.GetAll(), "StadId", "Naam"); KlasseService klasseService = new KlasseService(); zoekListVM.Klasses = new SelectList(klasseService.GetAll(), "KlasseId", "Klassenaam"); zoekListVM.GeselecteerdeKlasse = klasseService.GetKlasseVanId(zoekListVM.Klasse); RittenService rittenService = new RittenService(); TrajectService trajectService = new TrajectService(); TicketService ticketService = new TicketService(); VakantiesService vakantiesService = new VakantiesService(); zoekListVM.RoutesHeen = rittenService.GetRittenVanTraject(Convert.ToInt16(zoekListVM.Van), Convert.ToInt16(zoekListVM.Naar)); double totalePrijsh = 0; double totalePrijst = 0; foreach (var item in zoekListVM.RoutesHeen) { if (item.ReisMogelijkheden.Prijs != null) { totalePrijsh += Convert.ToDouble(item.ReisMogelijkheden.Prijs); } var vakantie = new Vakanties(); var extraPlaatsen = 1.0; //controle vakantie if (item.ReisMogelijkheden.Kerstvakantie == true && vakantiesService.DatumInVakantie(Convert.ToDateTime(zoekListVM.HeenDate), true) == true) { vakantie = vakantiesService.Get(Convert.ToDateTime(zoekListVM.HeenDate), true); extraPlaatsen = 1 + vakantie.PercentExtraPlaatsen; } else if (item.ReisMogelijkheden.Paasvakantie == true && vakantiesService.DatumInVakantie(Convert.ToDateTime(zoekListVM.HeenDate), false) == true) { vakantie = vakantiesService.Get(Convert.ToDateTime(zoekListVM.HeenDate), false); extraPlaatsen = 1 + vakantie.PercentExtraPlaatsen; } //controle nog genoeg plaatsen op de trein if (zoekListVM.Klasse == 1) { var vrijePlaatsen = Convert.ToInt16(item.ReisMogelijkheden.Trein.AantalPlaatsenEc * extraPlaatsen) - ticketService.GetAantalPlaatsenGereserveerd(item.ReisMogelijkhedenId, Convert.ToDateTime(zoekListVM.HeenDate), zoekListVM.Klasse); if (vrijePlaatsen < zoekListVM.Aantal) { return(RedirectToAction("ErrorTreinOverboekt")); } } else { var vrijePlaatsen = (item.ReisMogelijkheden.Trein.AantalPlaatsenBus * extraPlaatsen) - ticketService.GetAantalPlaatsenGereserveerd(item.ReisMogelijkhedenId, Convert.ToDateTime(zoekListVM.HeenDate), zoekListVM.Klasse); if (vrijePlaatsen < zoekListVM.Aantal) { return(RedirectToAction("ErrorTreinOverboekt")); } } } var aankomstdatumheenreis = Convert.ToDateTime(zoekListVM.HeenDate); //overstap gemist if (zoekListVM.RoutesHeen.Count() > 1) { for (int i = 0; i < zoekListVM.RoutesHeen.Count() - 1; i++) { if (zoekListVM.RoutesHeen.ElementAt(i).ReisMogelijkheden.Aankomsttijd >= zoekListVM.RoutesHeen.ElementAt(i + 1).ReisMogelijkheden.Vertrektijd) { aankomstdatumheenreis = aankomstdatumheenreis.AddDays(1); } } } ViewBag.Aankomstdatumheen = aankomstdatumheenreis; var aankomstdatumterugreis = Convert.ToDateTime(zoekListVM.TerugDate); if (zoekListVM.TerugDate != null) { zoekListVM.RoutesTerug = rittenService.GetRittenVanTraject(Convert.ToInt16(zoekListVM.Naar), Convert.ToInt16(zoekListVM.Van)); foreach (var item in zoekListVM.RoutesTerug) { if (item.ReisMogelijkheden.Prijs != null) { totalePrijst += Convert.ToDouble(item.ReisMogelijkheden.Prijs); } var vakantie = new Vakanties(); var extraPlaatsen = 1.0; //controle vakantie if (item.ReisMogelijkheden.Kerstvakantie == true && vakantiesService.DatumInVakantie(Convert.ToDateTime(zoekListVM.TerugDate), true) == true) { vakantie = vakantiesService.Get(Convert.ToDateTime(zoekListVM.TerugDate), true); extraPlaatsen = 1 + vakantie.PercentExtraPlaatsen; } else if (item.ReisMogelijkheden.Paasvakantie == true && vakantiesService.DatumInVakantie(Convert.ToDateTime(zoekListVM.TerugDate), false) == true) { vakantie = vakantiesService.Get(Convert.ToDateTime(zoekListVM.TerugDate), false); extraPlaatsen = 1 + vakantie.PercentExtraPlaatsen; } //controle nog genoeg plaatsen op de trein if (zoekListVM.Klasse == 1) { var vrijePlaatsen = Convert.ToInt16(item.ReisMogelijkheden.Trein.AantalPlaatsenEc * extraPlaatsen) - ticketService.GetAantalPlaatsenGereserveerd(item.ReisMogelijkhedenId, Convert.ToDateTime(zoekListVM.HeenDate), zoekListVM.Klasse); if (vrijePlaatsen < zoekListVM.Aantal) { return(RedirectToAction("ErrorTreinOverboekt")); } } else { var vrijePlaatsen = Convert.ToInt16(item.ReisMogelijkheden.Trein.AantalPlaatsenBus * extraPlaatsen) - ticketService.GetAantalPlaatsenGereserveerd(item.ReisMogelijkhedenId, Convert.ToDateTime(zoekListVM.HeenDate), zoekListVM.Klasse); if (vrijePlaatsen < zoekListVM.Aantal) { return(RedirectToAction("ErrorTreinOverboekt")); } } } //overstap gemist if (zoekListVM.RoutesTerug.Count() > 1) { for (int i = 0; i < zoekListVM.RoutesTerug.Count() - 1; i++) { if (zoekListVM.RoutesTerug.ElementAt(i).ReisMogelijkheden.Aankomsttijd >= zoekListVM.RoutesTerug.ElementAt(i + 1).ReisMogelijkheden.Vertrektijd) { aankomstdatumterugreis = aankomstdatumterugreis.AddDays(1); } } } } ViewBag.Aankomstdatumterug = aankomstdatumterugreis; ViewBag.PrijsTicketh = Convert.ToDouble(totalePrijsh); ViewBag.PrijsTickett = Convert.ToDouble(totalePrijst); //if (ModelState.IsValid) //{ return(View(zoekListVM)); } else { zoekListVM.RoutesHeen = null; return(View("Home", zoekListVM)); } }