Example #1
0
        public Booking CreateBooking(DateTime dateOfBooking, Traveler traveler, Trip trip)
        {
            Booking booking = new Booking
            {
                Trip        = trip,
                Traveler    = traveler,
                BookingDate = dateOfBooking
            };

            if (CheckUnpaidTrips(traveler) >= UnpaidTripLimit)
            {
                return(DenyBooking(booking));
            }

            if (!OpenForBooking(dateOfBooking, trip))
            {
                return(UnavailableBooking(booking));
            }

            return(AcceptBooking(booking));
        }