public ActionResult Save(ReservationFormViewModel reservationFormViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("FinalizeReservation", reservationFormViewModel));
            }

            var reservation = new Reservation()
            {
                StartDate           = reservationFormViewModel.StartDate,
                EndDate             = reservationFormViewModel.EndDate,
                GuestId             = reservationFormViewModel.GuestId,
                RoomId              = reservationFormViewModel.RoomId,
                Discount            = reservationFormViewModel.Discount,
                ReservationStatusId = 1
            };

            var invoice = new Invoice()
            {
                Reservation = reservation
            };

            try
            {
                Context.Reservations.Add(reservation);
                Context.Invoices.Add(invoice);
                Context.SaveChanges();
                return(RedirectToAction("ReservationList", "Reservation"));
            }
            catch (Exception e)
            {
                Logger.Error(e, e.Message);
                return(View("Error", new HandleErrorInfo(e, "Reservation", "Save")));
            }
        }
        public ActionResult SaveGuestDate(ReservationFormViewModel selectDateGuestViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("SelectGuestDate", selectDateGuestViewModel));
            }

            var rangeFromSelect = new TimeRange(selectDateGuestViewModel.StartDate, selectDateGuestViewModel.EndDate);

            var reservations = Context.Reservations.ToList();

            var unavailableRoomsId = reservations
                                     .Where(r => rangeFromSelect.IntersectsWith(new TimeRange(r.StartDate, r.EndDate, true)))
                                     .Select(r => r.RoomId).ToList();

            var availableRooms = Context.Rooms.Where(ar => !unavailableRoomsId.Contains(ar.Id));

            var viewModel = new ReservationFormViewModel()
            {
                StartDate = selectDateGuestViewModel.StartDate,
                EndDate   = selectDateGuestViewModel.EndDate,
                GuestId   = selectDateGuestViewModel.GuestId,
                Rooms     = availableRooms
            };

            return(View("FinalizeReservation", viewModel));
        }
        public ActionResult New()
        {
            var guests    = Context.Guests.ToList();
            var viewModel = new ReservationFormViewModel()
            {
                Guests = guests,
            };

            return(View("SelectGuestDate", viewModel));
        }
        public ActionResult FinalizeReservation(ReservationFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("FinalizeReservation", viewModel));
            }
            var reservationFormViewModel = new ReservationFormViewModel()
            {
                StartDate = viewModel.StartDate,
                EndDate   = viewModel.EndDate,
                RoomId    = viewModel.RoomId,
                Discount  = viewModel.Discount,
                GuestId   = viewModel.GuestId
            };

            return(RedirectToAction("Save", reservationFormViewModel));
        }
示例#5
0
 public virtual ActionResult AddNew()
 {
     return(View(ReservationFormViewModel.Create()));
 }