예제 #1
0
        private static void Run()
        {
            bool isBookingSuccess = false;

            try
            {
                // Set dummy data
                string         name           = "Jason Kim";
                string         passport       = "ABCD1234";
                DateTime?      fromDate       = new DateTime(2018, 1, 1, 0, 0, 0);
                DateTime?      toDate         = new DateTime(2018, 1, 10, 0, 0, 0);
                PreferredFloor preferredFloor = PreferredFloor.First;

                // Start integrated(Facade) system for booking
                var booker = new Booker();
                isBookingSuccess = booker.BookPackageProduct(name, passport, fromDate, toDate, preferredFloor);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            string resultMessage = isBookingSuccess ? "Booking has beed succeeded." : "Booking has been failed.";

            Console.WriteLine(resultMessage);
        }
예제 #2
0
        public bool BookBus(string name, PreferredFloor preferredFloor)
        {
            bool result = false;

            try
            {
                if (string.IsNullOrEmpty(name))
                {
                    throw new ArgumentNullException();
                }

                // Do something for booking
                result = true; // Success case
            }
            catch (Exception ex)
            {
                // Logging
                throw;
            }

            return(result);
        }
예제 #3
0
        public bool BookPackageProduct(string name, string passport, DateTime?fromDate, DateTime?toDate, PreferredFloor preferredFloor)
        {
            bool result = false;

            try
            {
                bool isAirlineBookingSuccess = _airlineSystem.Value.BookFlight(name, passport);

                bool isBusBookingSuccess = _busSystem.Value.BookBus(name, preferredFloor);

                bool isHotelBookingSuccess = _hotelSystem.Value.BookHotel(name, fromDate, toDate);

                if (isAirlineBookingSuccess && isBusBookingSuccess && isHotelBookingSuccess)
                {
                    result = true;
                }
            }
            catch (Exception ex)
            {
                // Logging
                throw;
            }

            return(result);
        }