Exemple #1
0
        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 }));
            }
        }
Exemple #2
0
        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));
        }