示例#1
0
文件: Room.cs 项目: OneeyK/oop_1sem
 private void CallEvent(RoomEventArgs e, RoomStateHandler handler)
 {
     if (e != null)
     {
         handler?.Invoke(this, e);
     }
 }
示例#2
0
文件: Hotel.cs 项目: OneeyK/oop_1sem
        public void RoomAdd(int guests, string categorie, RoomStateHandler addroomhandler,
                            RoomStateHandler payhandler, RoomStateHandler bookhandler, RoomStateHandler paidafterbookinghanlder,
                            RoomStateHandler freeroom, RoomStateHandler getinfo)
        {
            T newRoom = new NewRoom(guests, categorie) as T;

            if (newRoom == null)
            {
                throw new Exception("Can't add the room");
            }
            if (guests < 0)
            {
                throw new Exception("Wrong number of guests");
            }
            if (categorie != "luxe" && categorie != "economy" && categorie != "normal")
            {
                throw new Exception("Wrong room category");
            }
            if (rooms == null)
            {
                rooms = new T[] { newRoom }
            }
            ;
            else
            {
                T[] tempRooms = new T[rooms.Length + 1];
                for (int i = 0; i < rooms.Length; i++)
                {
                    tempRooms[i] = rooms[i];
                }
                tempRooms[tempRooms.Length - 1] = newRoom;
                rooms = tempRooms;
            }
            newRoom.AddedRoom            += addroomhandler;
            newRoom.BookedRoom           += bookhandler;
            newRoom.PaidAfterBookingRoom += paidafterbookinghanlder;
            newRoom.PaidForRoom          += payhandler;
            newRoom.FreeRoom             += freeroom;
            newRoom.GotInfo += getinfo;

            newRoom.AddRoom();
        }