Exemplo n.º 1
0
 public IActionResult GetRooms()
 {
     return(View(new AdminGetRoomsViewModel(_repository.GetAllRooms(), _repository.GetAllRoomTypes())));
 }
Exemplo n.º 2
0
        //[ValidateAntiForgeryToken]
        public IActionResult GetRoom(ServiceGetRoomViewModel roomModel)
        {
            if (roomModel.OrderRoom.RoomTypeId == -1)
            {
                ModelState.AddModelError("OrderRoom.RoomTypeId", "Please select the Room Type");
            }

            if (roomModel.Customer.Age == false)
            {
                ModelState.AddModelError("Customer.Age", "Sorry you must not be below 21 years old");
            }

            if (roomModel.OrderRoom.TermsAndConditions == false)
            {
                ModelState.AddModelError("OrderRoom.TermsAndConditions", "We need to see your Id");
            }


            if (ModelState.IsValid)
            {
                var check = _repository.GetAllCustomers()
                            .Where(q => q.Email == roomModel.Customer.Email);
                if (check.Count() > 0)
                {
                    ViewBag.GetRoom = "Email is already taken! \nIf you ever booked a room or event, you can log in!";
                }
                else
                {
                    _repository.AddCustomer(roomModel.Customer);
                    if (_repository.SaveChanges())
                    {
                        var roomOrders = _repository.GetAllRoomOrders()
                                         .Where(q =>
                                                (q.DateOfArrival >= roomModel.OrderRoom.DateOfArrival &&
                                                 q.DateOfArrival <= roomModel.OrderRoom.DateOfDeperture) ||
                                                (q.DateOfDeperture >= roomModel.OrderRoom.DateOfArrival &&
                                                 q.DateOfDeperture <= q.DateOfDeperture));
                        var rooms = _repository.GetAllRooms();

                        foreach (var order in roomOrders)
                        {
                            rooms = rooms.Where(q => q.RoomId != order.RoomId);
                        }


                        if (rooms.Count() > 0)
                        {
                            roomModel.OrderRoom.RoomId        = rooms.First().RoomId;
                            roomModel.OrderRoom.CustomerEmail = roomModel.Customer.Email;
                            roomModel.OrderRoom.UniqueOrderId = Guid.NewGuid();
                            _repository.AddRoomOrder(roomModel.OrderRoom);
                            if (_repository.SaveChanges())
                            {
                                ViewBag.GetRoom = "Thank you!";
                                ModelState.Clear();
                            }
                            else
                            {
                                ViewBag.GetRoom = "Oops! Could not place order";
                            }
                        }
                        else
                        {
                            ViewBag.GetRoom = "Rooms are not available";
                        }
                    }
                    else
                    {
                        ViewBag.GetRoom = "Oops! Could not Save data";
                    }
                }
            }

            ViewBag.RoomTypes = _room.RoomTypes(_repository.GetAllRoomTypes());
            return(View(new ServiceGetRoomViewModel()));
        }