public ActionResult Create(CreateReservationsVM vm) { Table table = tableDb.GetTable((int)TempData["TableId"]); PiniTCustomer customer = custDb.GetCustomer(User.Identity.GetUserId()); var manager = manDb.GetManager(table.RestaurantId); var hub = GlobalHost.ConnectionManager.GetHubContext <PiniTHub>(); if (!ModelState.IsValid || !vm.HasAcceptedTerms) { TempData["TableId"] = table.TableId; vm.Table = table; vm.Restaurant = restDb.GetRestaurant(table.RestaurantId); return(View(vm)); } if (customer.AccountWallet.Credits < vm.Reservation.BookingFee) { TempData["Message"] = "Not enough Credits. Reservation Cancelled"; return(RedirectToAction("CustomerIndex", "Tables", new { id = table.RestaurantId })); } if (table.IsBooked) { TempData["Message"] = "Sorry! Someone else Booked that Table! You can Book another one :)"; return(RedirectToAction("CustomerIndex", "Tables", new { id = table.RestaurantId })); } vm.Reservation.TableId = table.TableId; tableDb.ToggleIsBooked(vm.Reservation.TableId); vm.Reservation.CustomerId = User.Identity.GetUserId(); if (vm.Reservation.Comment == null || vm.Reservation.Comment == "") { vm.Reservation.Comment = "No Comment"; } db.CreateReservation(vm.Reservation); hub.Clients.User(manager.UserName).getReservation(new { Customer = User.Identity.Name, Comment = vm.Reservation.Comment, Date = vm.Reservation.BookDate.ToString("dd/MM/yyyy HH:mm"), Table = table.Name, EstimatedTime = vm.Reservation.BookDate.AddMinutes(vm.EstimatedTime).ToString("HH:mm") }); bool result = walletDb.PayFee(vm.Reservation.BookingFee, vm.Reservation.CustomerId, table.RestaurantId); if (result) { TempData["Message"] = "Reservation Accepted! :)"; return(RedirectToAction("Index", "Home")); } else { TempData["Message"] = "Sorry Something went Wrong ! :'("; return(RedirectToAction("CustomerIndex", "Tables", new { id = table.RestaurantId })); } }
public ActionResult Create(int id) { Table table = tableDb.GetTable(id); TempData["TableId"] = id; ViewBag.Restaurant = restDb.GetRestaurant(table.RestaurantId); ViewBag.Table = table; CreateReservationsVM vm = new CreateReservationsVM { Table = table, Restaurant = restDb.GetRestaurant(table.RestaurantId), }; return(View(vm)); }
// GET: Reservations/Create public ActionResult Create() { CreateReservationsVM rez = new CreateReservationsVM(); rez.ReservationDate = System.DateTime.Now; int actualHourVal = GetCurrentHour(); int actualMinuteVal = GetCurrentMinute(); List <string> listOfHours = new List <string>(); List <string> listOfStartHour = new List <string>(); List <string> listOfEndHour = new List <string>(); listOfHours = GetListOfHours(); string currentHour = String.Empty; if (GetCurrentHour() < 10) { currentHour += "0"; } if (GetCurrentMinute() < 30) { currentHour += GetCurrentHour().ToString(); currentHour += ":30"; } else { currentHour += (GetCurrentHour() + 1).ToString(); currentHour += ":00"; } rez.StartHour = currentHour; ViewBag.RoomId = new SelectList(db.Rooms, "Id", "Name"); ViewBag.ListOfStartHours = new SelectList(listOfHours); ViewBag.ListOfEndHours = new SelectList(listOfHours); return(View(rez)); }
public ActionResult Create(CreateReservationsVM reservation) { // Validari if (reservation.Name == null) { ModelState.AddModelError("Name", "Enter name!"); } if (reservation.Name == null) { ModelState.AddModelError("Subject", "Enter subject name!"); } if (reservation.RoomId <= 0) { ModelState.AddModelError("RoomId", "Select room name!"); } DateTime currentDateTime = System.DateTime.Now.Date; if (reservation.ReservationDate < currentDateTime) { ModelState.AddModelError("ReservationDate", "Wrong date!"); } if (reservation.ReservationDate == currentDateTime) { if (GetHour(reservation.StartHour).CompareTo(currentDateTime.Hour) == -1) { ModelState.AddModelError("StartHour", "Wrong Hours!"); } } if (reservation.StartHour.CompareTo(reservation.EndHour) == 0) { ModelState.AddModelError("", "Choose different hours!"); } if (reservation.StartHour == null && reservation.EndHour == null) { ModelState.AddModelError("StartHour", "Enter Hours!"); ModelState.AddModelError("EndHour", "Enter Hours!"); } else { int isDifferentHours = reservation.StartHour.CompareTo(reservation.EndHour); if (isDifferentHours == 1) { ModelState.AddModelError("EndHour", "The last Last Hour cannot be less then Start Hour!"); } } // Validarea suprema foreach (var elem in db.Reservations) { if (reservation.RoomId == elem.RoomId) { if (reservation.StartHour != null && reservation.EndHour != null) { if (reservation.ReservationDate.Date == elem.EndDate.Date && reservation.ReservationDate.Date == elem.StartDate.Date) { ModelState.AddModelError("", "This reservation is already in memory!"); } } } } if (ModelState.IsValid) { Reservation r = new Reservation() { Id = reservation.Id, Name = reservation.Name, Subject = reservation.Subject, RoomId = reservation.RoomId, }; r.StartDate = new DateTime(reservation.ReservationDate.Year, reservation.ReservationDate.Month, reservation.ReservationDate.Day, GetHour(reservation.StartHour), GetMinute(reservation.StartHour), 0); r.EndDate = new DateTime(reservation.ReservationDate.Year, reservation.ReservationDate.Month, reservation.ReservationDate.Day, GetHour(reservation.EndHour), GetMinute(reservation.EndHour), 0); db.Reservations.Add(r); db.SaveChanges(); return(RedirectToAction("Index")); } int actualHourVal = GetCurrentHour(); int actualMinuteVal = GetCurrentMinute(); List <string> listOfHours = new List <string>(); List <string> listOfStartHour = new List <string>(); List <string> listOfEndHour = new List <string>(); listOfHours = GetListOfHours(); ViewBag.ListOfStartHours = new SelectList(listOfHours); ViewBag.ListOfEndHours = new SelectList(listOfHours); ViewBag.RoomId = new SelectList(db.Rooms, "Id", "Name", reservation.RoomId); return(View(reservation)); }