Example #1
0
        public ActionResult EditManager(string id)
        {
            PiniTManager manager = manDb.GetManager(id);

            if (manager == null)
            {
                return(HttpNotFound());
            }

            return(View(manager));
        }
Example #2
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 }));
            }
        }