示例#1
0
        public ActionResult DeclineReservedRoom(int room_id)
        {
            JongHorDBEntities1 jonghor = new JongHorDBEntities1();

            Room_Reserved roomReserved = jonghor.Room_Reserved.Where(r => r.Room_ID == room_id).First();

            jonghor.Room_Reserved.Remove(roomReserved);

            jonghor.Room.Find(room_id).Status = (int)Status.Avaliable;

            try
            {
                jonghor.SaveChanges();
            }
            catch (DbEntityValidationException ex)
            {
                // Retrieve the error messages as a list of strings.
                var errorMessages = ex.EntityValidationErrors
                                    .SelectMany(x => x.ValidationErrors)
                                    .Select(x => x.ErrorMessage);

                // Join the list to a single string.
                var fullErrorMessage = string.Join("; ", errorMessages);

                // Combine the original exception message with the new one.
                var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                // Throw a new DbEntityValidationException with the improved exception message.
                throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
            }
            Response.Write("<script>alert('New Dorm Added')</script>");

            return(Roomsort("All"));
        }
示例#2
0
        public void GetRoomListView(string name, Status status)
        {
            PersonBusinessLayer userBa = new PersonBusinessLayer();
            Person user = userBa.GetUser(name);

            int dorm_id = user.Dorm.First().Dorm_ID;

            foreach (var room in user.Dorm.First().Room)
            {
                if (room.Status == (int)Status.Reserved)
                {
                    Room_Reserved reserved = room.Room_Reserved.First();
                    if (reserved.Count <= reserved.Room.Room_Type.Max)
                    {
                        room.Person.Add(reserved.Person);
                        Rooms.Add(new RoomViewModel(room.Floor + room.Room_number, room.Person, room.Status, room.Room_ID));
                    }
                }
                else if (room.Status == (int)status)
                {
                    Rooms.Add(new RoomViewModel(room.Floor + room.Room_number, room.Person, room.Status, room.Room_ID));
                }
            }
        }
示例#3
0
        public ActionResult Submit()
        {
            int count      = 0;
            int reserve_ID = 0;

            //new
            count = 1;


            Room_Reserved reserved_input = new Room_Reserved();

            reserved_input.Room_ID  = int.Parse(Session["room_id"] + "");
            reserved_input.Username = Session["UserName"] + "";
            reserved_input.Count    = count;

            // CHeck login
            if (Session["UserName"] == null)
            {
                return(RedirectToAction("Reserve", new
                {
                    error = 1,
                    room = int.Parse(Session["room_id"] + "")
                }));
            }

            //check Reserve More 1 room  // 1 คน มี ห้อง
            Room_ReservedLayer   RoomReservedLayer = new Room_ReservedLayer();
            List <Room_Reserved> RoomReservedList  = RoomReservedLayer.GetRoom_Reserved();
            int ReserveCount = 0;

            foreach (Room_Reserved room in RoomReservedList)
            {
                if (reserved_input.Username == room.Username)
                {
                    ReserveCount++;
                }
            }
            if (ReserveCount >= 1)
            {
                return(RedirectToAction("Reserve", new
                {
                    error = 3,
                    room = int.Parse(Session["room_id"] + "")
                }));
            }

            //check Count
            RoomViewLayer Roomview = new RoomViewLayer();

            Roomview = Roomview.GetRoomViewByRoom(int.Parse(Session["room_id"] + ""));
            if (Roomview.room.Room_Type.Max < (Roomview.Reserved_num + count))
            {
                return(RedirectToAction("Reserve", new
                {
                    error = 4,
                    room = int.Parse(Session["room_id"] + "")
                }));
            }

            /*
             * // check full
             * else if (Roomview.room.Room_Type.Max == (Roomview.Reserved_num + count)) // เท่ากัน
             * {
             *  db.Room.Find(Roomview.room.Room_ID).Status = (int)Status.NotAvaliable;
             *
             * }*/


            // change status to reserve
            db.Room.Find(Roomview.room.Room_ID).Status = (int)Status.Reserved;

            //check Reserved_ID
            Room_ReservedLayer   Room_ReservedDB = new Room_ReservedLayer();
            List <Room_Reserved> RoomReDBList    = Room_ReservedDB.GetRoom_Reserved();

            foreach (Room_Reserved Roomreserved in RoomReDBList)
            {
                if (reserve_ID == Roomreserved.Reserve_ID)
                {
                    reserve_ID++;
                }
            }

            reserved_input.Reserve_ID = reserve_ID;


            try
            {
                db.Room_Reserved.Add(reserved_input);
                db.SaveChanges();

                RoomViewLayer        RoomDB       = new RoomViewLayer();
                List <RoomViewLayer> RoomViewList = RoomDB.GetRoomViewByDorm(reserved_input.Room.Dorm_ID);



                return(View("Room", RoomViewList));
            }
            catch
            {
                return(RedirectToAction("Reserve", new
                {
                    error = 2,
                    room = int.Parse(Session["room_id"] + "")
                }));
            }



            // return reserve +;
        }