コード例 #1
0
        public IActionResult ReservationDetails(int Id)
        {
            var model = from res in _context.Reservations.Where(i => i.Id == Id)
                        join ve in _context.Vehicles on res.VehicleId equals ve.Id
                        join us in _context.Users on res.UserId equals us.Id
                        select new ReservationModelView
            {
                UserName     = us.FirstName + " " + us.LastName,
                VehicleModel = ve.Model,
                PickUpDate   = res.PickUpDate,
                //  DropOffDate=res.DropOffDate,
                PickUpTime              = res.PickUpTime,
                DropOffTime             = res.DropOffTime,
                PickUpLocationLongitute = res.PickUpLocationLongitute,
                PickUpLocationLatitue   = res.PickUpLocationLatitue,
                ReturnLocationLongitute = res.ReturnLocationLongitute,
                ReturnLocationLatitue   = res.ReturnLocationLatitue,
                Total       = res.Amount,
                Date        = res.CreateTime,
                IsConfirmed = res.IsConfirmed
            };

            ReservationModelView result = model.FirstOrDefault();

            return(View(result));
        }
コード例 #2
0
        public void AddNewReservation(ReservationModelView reservationModelView)
        {
            string[] dates = reservationModelView.expiry.Split('/');
            int      mount = int.Parse(dates[0]);
            int      year  = int.Parse(dates[1]) + 2000;

            CreditCard creditCard = new CreditCard()
            {
                NameSurname = reservationModelView.name,
                CardNumber  = reservationModelView.number,
                ExpDate     = new DateTime(year, mount, 1),
                CVV         = reservationModelView.cvc
            };

            creditCardRepository.Add(creditCard);
            creditCardRepository.Complete();

            TicketReservation ticketReservation = new TicketReservation()
            {
                IdCreditCard = creditCard.Id,
                IdTicket     = reservationModelView.IdTicket,
                Created      = DateTime.Now,
                Email        = reservationModelView.Email,
                FullName     = reservationModelView.FullName,
                Quantity     = reservationModelView.Quantity
            };

            ticketReservationRepository.Add(ticketReservation);
            ticketReservationRepository.Complete();
        }
コード例 #3
0
        public ActionResult Reservation(int?IdEvent)
        {
            if (IdEvent.HasValue == false)
            {
                return(HttpNotFound());
            }

            ViewBag.IdTicket = new SelectList(eventFactory.getTicketsForEvent(IdEvent.Value).ToList(), "Id", "Name");

            ReservationModelView reservationModelView = new ReservationModelView();

            reservationModelView.IdEvent = IdEvent.Value;

            return(View(reservationModelView));
        }
コード例 #4
0
        /**
         * Redirige vers la page de Détail de logement
         * où on peut créer une réservation
         */
        // GET: ReservationsController/Create
        public ActionResult Create(int id)
        {
            Logement logement = getLogement(id);

            var reservationVM = new ReservationModelView
            {
                IdLogement = logement.Id,
                DateDebut  = DateTime.Now,
                DateFin    = DateTime.Now.AddDays(7)
            };

            List <Reservation> reservations = getAllReservationsByLogement(logement.Id);

            ViewData["reservations"] = Newtonsoft.Json.JsonConvert.SerializeObject(reservations);
            ViewData["logement"]     = logement;
            return(View(reservationVM));
        }
コード例 #5
0
        public ActionResult Reservation(ReservationModelView rmv)
        {
            ViewBag.IdTicket = new SelectList(eventFactory.getTicketsForEvent(rmv.IdEvent).ToList(), "Id", "Name");

            if (String.IsNullOrEmpty(rmv.FullName) || String.IsNullOrEmpty(rmv.Email) || String.IsNullOrEmpty(rmv.number) || String.IsNullOrEmpty(rmv.FullName) || String.IsNullOrEmpty(rmv.expiry) || String.IsNullOrEmpty(rmv.cvc) || String.IsNullOrEmpty(rmv.name) || rmv.Quantity == 0)
            {
                rmv.ValidationMessage = "Sva polja moraju biti unesena.";
                return(View(rmv));
            }

            CreditCardDetector detector = new CreditCardDetector(rmv.number);

            if (detector.IsValid() == false)
            {
                rmv.ValidationMessage = "Kartica nije valjana.";
                return(View(rmv));
            }

            eventFactory.AddNewReservation(rmv);

            return(RedirectToAction("Details", "Event", new { IdEvent = rmv.IdEvent }));
        }
コード例 #6
0
        public ActionResult Create(ReservationModelView reservationVM)
        {
            // récupère l'utilisateur authentifié
            Utilisateur utilisateur = null;

            if (HttpContext.Session.GetInt32("userId") != null && HttpContext.Session.GetInt32("userId") > 0)
            {
                int idUtilisateur = (int)HttpContext.Session.GetInt32("userId");  //Convert.ToInt32(HttpContext.Request.Cookies["userId"]);
                utilisateur = _db.Utilisateurs.Single(utilisateur => utilisateur.Id == idUtilisateur);
            }

            if (utilisateur == null)
            {
                TempData["messageErreur"] = "Connectez-vous pour effectuer une réservation";
                return(RedirectToAction("Index", "Home"));
            }

            Logement           logement     = getLogement(reservationVM.IdLogement);
            List <Reservation> reservations = getAllReservationsByLogement(logement.Id);

            ViewData["reservations"] = Newtonsoft.Json.JsonConvert.SerializeObject(reservations);
            ViewData["logement"]     = logement;

            foreach (Reservation reservation in reservations)
            {
                bool overlap = isPeriodeDisponible(reservation.DateDebut, reservation.DateFin, reservationVM.DateDebut, reservationVM.DateFin);
                if (overlap)
                {
                    ModelState.AddModelError("", "La réservation n'est pas disponible pour la période choisie!");
                    return(View(reservationVM));
                }
            }

            if (!ModelState.IsValid)
            {
                return(View(reservationVM));
            }

            if (!reservationVM.Validated)
            {
                var validationResults = reservationVM.Validate(new ValidationContext(reservationVM, null, null));
                foreach (var error in validationResults)
                {
                    foreach (var memberName in error.MemberNames)
                    {
                        ModelState.AddModelError(memberName, error.ErrorMessage);
                    }
                }


                return(View(reservationVM));
            }


            try
            {
                Reservation reservation = new Reservation()
                {
                    Logement  = logement,
                    DateDebut = reservationVM.DateDebut,
                    DateFin   = reservationVM.DateFin,
                    Locateur  = utilisateur
                };

                _db.Reservations.Add(reservation);
                _db.SaveChanges();

                TempData["messageSucces"] = "Réservation effectuée avec succès !";
                return(RedirectToAction("Details", new { id = reservation.Id }));
            }
            catch
            {
                return(View(reservationVM));
            }
        }
コード例 #7
0
        public ActionResult Index() // récupérer toutes les réservations en cours
        {
            ReservationModelView modelView = new ReservationModelView((List <BooksBorrowing>)Session["BooksBorrowing"]);

            return(View(modelView));
        }