예제 #1
0
        public static List <ApartmentBookingResponse> GetApartmentsBooking()
        {
            var apartments = new XmlApartmentReader(ApartmentFile).GetApartments();
            var bookings   = new XmlBookingReader(BookingFile).GetBookings();

            var apartmentBookings = (from apartment in apartments
                                     join booking in bookings on apartment.Id equals booking.ApartmentId
                                     into joinBookings
                                     from jBooking in joinBookings.DefaultIfEmpty()
                                     select new ApartmentBookingResponse(apartment, jBooking)).ToList();

            return(apartmentBookings);
        }
예제 #2
0
        public static void BookForDate(Booking booking)
        {
            XmlBookingWriter   writer          = new XmlBookingWriter(BookingFile);
            XmlBookingReader   reader          = new XmlBookingReader(BookingFile);
            XmlApartmentWriter apartmentWriter = new XmlApartmentWriter(ApartmentFile);

            if (reader.Exist(booking))
            {
                throw new Exception("This apartment has booked already.");
            }

            writer.AppendElement(booking);
            apartmentWriter.ChangeApartmentBooking(booking, true);
        }
예제 #3
0
        private static void CheckOut(Guest guest)
        {
            XmlBookingWriter      bookingWriter      = new XmlBookingWriter(BookingFile);
            XmlGuestWriter        guestWriter        = new XmlGuestWriter(GuestFile);
            XmlApartmentWriter    apartmentWriter    = new XmlApartmentWriter(ApartmentFile);
            XmlGuestHistoryWriter guestHistoryWriter = new XmlGuestHistoryWriter(GuestHistoryFile);

            XmlBookingReader bookingReader = new XmlBookingReader(BookingFile);

            var booking = bookingReader.GetBookings().Single(book => book.GuestId == guest.Id);

            booking.BookStatus = BookingStatus.CHECK_OUT;
            guestWriter.RemoveElement(guest);     //=>save to history
            bookingWriter.RemoveElement(booking); //=>save to history
            apartmentWriter.ChangeApartmentBooking(booking, false);
            guestHistoryWriter.Archive(guest, booking);
        }
예제 #4
0
        public static List <Booking> GetBookings()
        {
            XmlBookingReader bookingReader = new XmlBookingReader(BookingFile);

            return(bookingReader.GetBookings());
        }