public Room Search(decimal price, int capacity, DateTime startDate, DateTime endDate)
        {
            Room result = null;

            if (capacity == 1)
            {
                // Search in SingleRooms
                result = SingleRooms.SingleOrDefault(
                    x => x.Price == price && !x.IsBooked(startDate, endDate));

                if (result == null)
                {
                    result = SingleRooms.FirstOrDefault(x => !x.IsBooked(startDate, endDate));
                }
                else
                {
                    result.AddBooking(startDate, endDate);
                }
            }
            else
            {
                // Search in DoubleRooms
                result = DoubleRooms.SingleOrDefault(
                    x => x.Price == price && !x.IsBooked(startDate, endDate));

                if (result == null)
                {
                    result = DoubleRooms.FirstOrDefault(x => !x.IsBooked(startDate, endDate));
                }
                else
                {
                    result.AddBooking(startDate, endDate);
                }
            }

            return(result);
        }
        static void Main(string[] args)
        {
            Booking booking = new Booking(new DateTime(2020, 04, 02), new DateTime(2020, 04, 05));

            booking.Print();

            Console.ReadLine();

            Room room = new Room(1, 100, Type.Single);

            room.AddBooking(new DateTime(2020, 04, 02), new DateTime(2020, 04, 05));
            room.Print();

            Console.ReadLine();

            Hotel hotel = new Hotel("GCD0702");

            hotel.AddRoom(1, 100, Type.Single);
            hotel.AddRoom(2, 120, Type.Single);
            hotel.AddRoom(3, 150, Type.Single);
            hotel.AddRoom(4, 160, Type.Single);
            hotel.AddRoom(5, 200, Type.Single);

            hotel.AddRoom(1, 200, Type.Double);
            hotel.AddRoom(2, 220, Type.Double);
            hotel.AddRoom(3, 240, Type.Double);
            hotel.AddRoom(4, 300, Type.Double);
            hotel.AddRoom(5, 360, Type.Double);
            hotel.AddRoom(6, 400, Type.Double);

            Room searchRoom = hotel.Search(160, 1, new DateTime(2020, 04, 02), new DateTime(2020, 04, 09));

            searchRoom.Print();

            Console.ReadLine();

            searchRoom = hotel.Search(160, 1, new DateTime(2020, 04, 02), new DateTime(2020, 04, 09));
            searchRoom.Print();

            Console.ReadLine();
        }